diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po
index 13c23e65e3..5561686714 100644
--- a/InvenTree/locale/de/LC_MESSAGES/django.po
+++ b/InvenTree/locale/de/LC_MESSAGES/django.po
@@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-01-10 03:54+0000\n"
-"PO-Revision-Date: 2022-01-10 03:58\n"
+"POT-Creation-Date: 2022-01-29 00:17+0000\n"
+"PO-Revision-Date: 2022-01-29 01:11\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Language: de_DE\n"
@@ -18,15 +18,15 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 138\n"
-#: InvenTree/api.py:64
+#: InvenTree/api.py:55
msgid "API endpoint not found"
msgstr "API-Endpunkt nicht gefunden"
-#: InvenTree/api.py:110
+#: InvenTree/api.py:101
msgid "No action specified"
msgstr "Keine Aktion angegeben"
-#: InvenTree/api.py:124
+#: InvenTree/api.py:116
msgid "No matching action found"
msgstr "Keine passende Aktion gefunden"
@@ -80,41 +80,41 @@ msgstr "Bestätigung der E-Mail Adresse"
msgid "You must type the same email each time."
msgstr "E-Mail Adressen müssen übereinstimmen."
-#: InvenTree/helpers.py:437
+#: InvenTree/helpers.py:439
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr "Doppelte Seriennummer: {n}"
-#: InvenTree/helpers.py:444 order/models.py:279 order/models.py:420
+#: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425
#: stock/views.py:1231
msgid "Invalid quantity provided"
msgstr "Keine gültige Menge"
-#: InvenTree/helpers.py:447
+#: InvenTree/helpers.py:449
msgid "Empty serial number string"
msgstr "Keine Seriennummer angegeben"
-#: InvenTree/helpers.py:469 InvenTree/helpers.py:472 InvenTree/helpers.py:475
-#: InvenTree/helpers.py:500
+#: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477
+#: InvenTree/helpers.py:502
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Ungültige Gruppe: {g}"
-#: InvenTree/helpers.py:510
+#: InvenTree/helpers.py:512
#, python-brace-format
msgid "Invalid group {group}"
msgstr "Ungültige Gruppe {group}"
-#: InvenTree/helpers.py:516
+#: InvenTree/helpers.py:518
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr "Ungültige/Keine Gruppe {group}"
-#: InvenTree/helpers.py:522
+#: InvenTree/helpers.py:524
msgid "No serial numbers found"
msgstr "Keine Seriennummern gefunden"
-#: InvenTree/helpers.py:526
+#: InvenTree/helpers.py:528
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Anzahl der eindeutigen Seriennummern ({s}) muss mit der Anzahl ({q}) übereinstimmen"
@@ -127,7 +127,7 @@ msgstr "Fehlende Datei"
msgid "Missing external link"
msgstr "Fehlender externer Link"
-#: InvenTree/models.py:132 stock/models.py:1967
+#: InvenTree/models.py:132 stock/models.py:1995
#: templates/js/translated/attachment.js:119
msgid "Attachment"
msgstr "Anhang"
@@ -137,15 +137,15 @@ msgid "Select file to attach"
msgstr "Datei zum Anhängen auswählen"
#: InvenTree/models.py:139 company/models.py:131 company/models.py:348
-#: company/models.py:564 order/models.py:124 part/models.py:828
+#: company/models.py:564 order/models.py:127 part/models.py:830
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1317
+#: templates/js/translated/company.js:829 templates/js/translated/part.js:1324
msgid "Link"
msgstr "Link"
-#: InvenTree/models.py:140 build/models.py:330 part/models.py:829
-#: stock/models.py:527
+#: InvenTree/models.py:140 build/models.py:332 part/models.py:831
+#: stock/models.py:529
msgid "Link to external URL"
msgstr "Link zu einer externen URL"
@@ -157,10 +157,11 @@ msgstr "Kommentar"
msgid "File comment"
msgstr "Datei-Kommentar"
-#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213
-#: common/models.py:1214 part/models.py:2258 part/models.py:2278
+#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1223
+#: common/models.py:1224 common/models.py:1452 common/models.py:1453
+#: part/models.py:2265 part/models.py:2285
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2534
+#: templates/js/translated/stock.js:2692
msgid "User"
msgstr "Benutzer"
@@ -197,42 +198,42 @@ msgstr "Fehler beim Umbenennen"
msgid "Invalid choice"
msgstr "Ungültige Auswahl"
-#: InvenTree/models.py:277 InvenTree/models.py:278 company/models.py:415
-#: label/models.py:112 part/models.py:772 part/models.py:2442
-#: plugin/models.py:40 report/models.py:181
+#: InvenTree/models.py:277 InvenTree/models.py:278 common/models.py:1438
+#: company/models.py:415 label/models.py:112 part/models.py:774
+#: part/models.py:2449 plugin/models.py:40 report/models.py:181
#: templates/InvenTree/settings/mixins/urls.html:13
-#: templates/InvenTree/settings/plugin.html:47
-#: templates/InvenTree/settings/plugin.html:124
+#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin.html:125
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:279
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:561
-#: templates/js/translated/part.js:700 templates/js/translated/part.js:1624
-#: templates/js/translated/stock.js:2327
+#: templates/InvenTree/settings/settings.html:282
+#: templates/js/translated/company.js:641 templates/js/translated/part.js:567
+#: templates/js/translated/part.js:706 templates/js/translated/part.js:1631
+#: templates/js/translated/stock.js:2485
msgid "Name"
msgstr "Name"
-#: InvenTree/models.py:284 build/models.py:207
+#: InvenTree/models.py:284 build/models.py:209
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:73 label/models.py:119
-#: order/models.py:122 part/models.py:795 part/templates/part/category.html:74
+#: order/models.py:125 part/models.py:797 part/templates/part/category.html:74
#: part/templates/part/part_base.html:163
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:93
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:327 templates/js/translated/bom.js:540
+#: templates/js/translated/bom.js:339 templates/js/translated/bom.js:552
#: templates/js/translated/build.js:1682 templates/js/translated/company.js:345
#: templates/js/translated/company.js:551
#: templates/js/translated/company.js:840 templates/js/translated/order.js:836
#: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258
-#: templates/js/translated/part.js:620 templates/js/translated/part.js:992
-#: templates/js/translated/part.js:1077 templates/js/translated/part.js:1247
-#: templates/js/translated/part.js:1643 templates/js/translated/part.js:1712
-#: templates/js/translated/stock.js:1569 templates/js/translated/stock.js:2339
-#: templates/js/translated/stock.js:2384
+#: templates/js/translated/part.js:626 templates/js/translated/part.js:999
+#: templates/js/translated/part.js:1084 templates/js/translated/part.js:1254
+#: templates/js/translated/part.js:1650 templates/js/translated/part.js:1719
+#: templates/js/translated/stock.js:1577 templates/js/translated/stock.js:2314
+#: templates/js/translated/stock.js:2497 templates/js/translated/stock.js:2542
msgid "Description"
msgstr "Beschreibung"
@@ -244,7 +245,7 @@ msgstr "Beschreibung (optional)"
msgid "parent"
msgstr "Eltern"
-#: InvenTree/serializers.py:65 part/models.py:2727
+#: InvenTree/serializers.py:65 part/models.py:2734
msgid "Must be a valid number"
msgstr "Muss eine gültige Nummer sein"
@@ -252,83 +253,83 @@ msgstr "Muss eine gültige Nummer sein"
msgid "Filename"
msgstr "Dateiname"
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:661
msgid "German"
msgstr "Deutsch"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:662
msgid "Greek"
msgstr "Griechisch"
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:663
msgid "English"
msgstr "Englisch"
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:664
msgid "Spanish"
msgstr "Spanisch"
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:665
msgid "Spanish (Mexican)"
msgstr "Spanisch (Mexikanisch)"
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:666
msgid "French"
msgstr "Französisch"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:667
msgid "Hebrew"
msgstr "Hebräisch"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:668
msgid "Italian"
msgstr "Italienisch"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:669
msgid "Japanese"
msgstr "Japanisch"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:670
msgid "Korean"
msgstr "Koreanisch"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:671
msgid "Dutch"
msgstr "Niederländisch"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:672
msgid "Norwegian"
msgstr "Norwegisch"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:673
msgid "Polish"
msgstr "Polnisch"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:674
msgid "Portugese"
msgstr "Portugiesisch"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:675
msgid "Russian"
msgstr "Russisch"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:676
msgid "Swedish"
msgstr "Schwedisch"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:677
msgid "Thai"
msgstr "Thailändisch"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:678
msgid "Turkish"
msgstr "Türkisch"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:679
msgid "Vietnamese"
msgstr "Vietnamesisch"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:680
msgid "Chinese"
msgstr "Chinesisch"
@@ -374,7 +375,7 @@ msgstr "Verloren"
msgid "Returned"
msgstr "Zurückgegeben"
-#: InvenTree/status_codes.py:143 order/models.py:941
+#: InvenTree/status_codes.py:143 order/models.py:961
#: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255
msgid "Shipped"
msgstr "Versendet"
@@ -455,7 +456,7 @@ msgstr "Vom übergeordneten Element geteilt"
msgid "Split child item"
msgstr "Unterobjekt geteilt"
-#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2064
+#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2072
msgid "Merged stock items"
msgstr "Lagerartikel zusammengeführt"
@@ -543,56 +544,56 @@ msgstr "Passwörter stimmen nicht überein"
msgid "System Information"
msgstr "Systeminformationen"
-#: barcodes/api.py:54 barcodes/api.py:151
+#: barcodes/api.py:54 barcodes/api.py:152
msgid "Must provide barcode_data parameter"
msgstr "barcode_data Parameter angeben"
-#: barcodes/api.py:127
+#: barcodes/api.py:128
msgid "No match found for barcode data"
msgstr "Keine Treffer für Barcode"
-#: barcodes/api.py:129
+#: barcodes/api.py:130
msgid "Match found for barcode data"
msgstr "Treffer für Barcode gefunden"
-#: barcodes/api.py:154
+#: barcodes/api.py:155
msgid "Must provide stockitem parameter"
msgstr "Lagerartikel-Parameter muss angegeben werden"
-#: barcodes/api.py:161
+#: barcodes/api.py:162
msgid "No matching stock item found"
msgstr "Keine passende Lagerartikel gefunden"
-#: barcodes/api.py:191
+#: barcodes/api.py:193
msgid "Barcode already matches Stock Item"
msgstr "Barcode entspricht bereits einem Lagerartikel"
-#: barcodes/api.py:195
+#: barcodes/api.py:197
msgid "Barcode already matches Stock Location"
msgstr "Barcode entspricht bereits Lagerort"
-#: barcodes/api.py:199
+#: barcodes/api.py:201
msgid "Barcode already matches Part"
msgstr "Barcode entspricht bereits Teil"
-#: barcodes/api.py:205 barcodes/api.py:217
+#: barcodes/api.py:207 barcodes/api.py:219
msgid "Barcode hash already matches Stock Item"
msgstr "Barcode-Hash entspricht bereits einem Lagerartikel"
-#: barcodes/api.py:223
+#: barcodes/api.py:225
msgid "Barcode associated with Stock Item"
msgstr "Barcode Lagerartikel zugeordnet"
-#: build/forms.py:36 build/models.py:1286
+#: build/forms.py:36 build/models.py:1293
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:35 common/models.py:1253
+#: build/templates/build/detail.html:35 common/models.py:1263
#: company/forms.py:42 company/templates/company/supplier_part.html:251
-#: order/models.py:796 order/models.py:1207 order/serializers.py:810
+#: order/models.py:805 order/models.py:1229 order/serializers.py:816
#: order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:145
-#: part/forms.py:161 part/forms.py:177 part/models.py:2629
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144
+#: part/forms.py:160 part/forms.py:176 part/models.py:2636
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:962 part/templates/part/detail.html:1048
+#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -603,7 +604,7 @@ msgstr "Barcode Lagerartikel zugeordnet"
#: stock/templates/stock/item_base.html:181
#: stock/templates/stock/item_base.html:262
#: stock/templates/stock/item_base.html:270
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:555
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:567
#: templates/js/translated/build.js:295 templates/js/translated/build.js:495
#: templates/js/translated/build.js:689 templates/js/translated/build.js:699
#: templates/js/translated/build.js:1075 templates/js/translated/build.js:1422
@@ -611,11 +612,11 @@ msgstr "Barcode Lagerartikel zugeordnet"
#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056
#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859
#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036
-#: templates/js/translated/order.js:2150 templates/js/translated/part.js:900
-#: templates/js/translated/part.js:1855 templates/js/translated/part.js:1978
-#: templates/js/translated/part.js:2056 templates/js/translated/stock.js:383
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:750
-#: templates/js/translated/stock.js:2519 templates/js/translated/stock.js:2621
+#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906
+#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985
+#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:391
+#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758
+#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2779
msgid "Quantity"
msgstr "Anzahl"
@@ -623,9 +624,9 @@ msgstr "Anzahl"
msgid "Enter quantity for build output"
msgstr "Menge der Endprodukte angeben"
-#: build/forms.py:41 order/serializers.py:814 stock/forms.py:81
-#: stock/serializers.py:314 templates/js/translated/stock.js:230
-#: templates/js/translated/stock.js:384
+#: build/forms.py:41 order/serializers.py:820 stock/forms.py:81
+#: stock/serializers.py:314 templates/js/translated/stock.js:238
+#: templates/js/translated/stock.js:392
msgid "Serial Numbers"
msgstr "Seriennummer"
@@ -649,18 +650,18 @@ msgstr "Abbruch bestätigen"
msgid "Confirm build cancellation"
msgstr "Bauabbruch bestätigen"
-#: build/models.py:133
+#: build/models.py:135
msgid "Invalid choice for parent build"
msgstr "Ungültige Wahl für übergeordneten Bauauftrag"
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:139 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:457
+#: templates/js/translated/build.js:457 templates/js/translated/stock.js:2290
msgid "Build Order"
msgstr "Bauauftrag"
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:140 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:92
#: order/templates/order/so_sidebar.html:13
@@ -670,40 +671,40 @@ msgstr "Bauauftrag"
msgid "Build Orders"
msgstr "Bauaufträge"
-#: build/models.py:198
+#: build/models.py:200
msgid "Build Order Reference"
msgstr "Bauauftragsreferenz"
-#: build/models.py:199 order/models.py:210 order/models.py:536
-#: order/models.py:803 part/models.py:2638
+#: build/models.py:201 order/models.py:213 order/models.py:541
+#: order/models.py:812 part/models.py:2645
#: 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/translated/bom.js:547 templates/js/translated/build.js:1179
+#: templates/js/translated/bom.js:559 templates/js/translated/build.js:1179
#: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144
msgid "Reference"
msgstr "Referenz"
-#: build/models.py:210
+#: build/models.py:212
msgid "Brief description of the build"
msgstr "Kurze Beschreibung des Baus"
-#: build/models.py:219 build/templates/build/build_base.html:164
+#: build/models.py:221 build/templates/build/build_base.html:164
#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr "Eltern-Bauauftrag"
-#: build/models.py:220
+#: build/models.py:222
msgid "BuildOrder to which this build is allocated"
msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist"
-#: build/models.py:225 build/templates/build/build_base.html:77
+#: build/models.py:227 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
-#: order/models.py:856 order/models.py:930
-#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
-#: part/models.py:2204 part/models.py:2220 part/models.py:2239
-#: part/models.py:2256 part/models.py:2358 part/models.py:2480
-#: part/models.py:2613 part/models.py:2920 part/serializers.py:658
+#: order/models.py:876 order/models.py:950
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359
+#: part/models.py:2211 part/models.py:2227 part/models.py:2246
+#: part/models.py:2263 part/models.py:2365 part/models.py:2487
+#: part/models.py:2620 part/models.py:2927 part/serializers.py:658
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -713,205 +714,205 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist"
#: templates/InvenTree/search.html:80
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
-#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:326
-#: templates/js/translated/bom.js:505 templates/js/translated/build.js:680
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:338
+#: templates/js/translated/bom.js:517 templates/js/translated/build.js:680
#: templates/js/translated/build.js:1048 templates/js/translated/build.js:1419
#: templates/js/translated/build.js:1687 templates/js/translated/company.js:492
#: templates/js/translated/company.js:749 templates/js/translated/order.js:84
#: templates/js/translated/order.js:586 templates/js/translated/order.js:1004
#: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933
-#: templates/js/translated/order.js:2128 templates/js/translated/part.js:977
-#: templates/js/translated/part.js:1058 templates/js/translated/part.js:1225
-#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:719
-#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1526
-#: templates/js/translated/stock.js:2609
+#: templates/js/translated/order.js:2128 templates/js/translated/part.js:984
+#: templates/js/translated/part.js:1065 templates/js/translated/part.js:1232
+#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727
+#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1534
+#: templates/js/translated/stock.js:2767
msgid "Part"
msgstr "Teil"
-#: build/models.py:233
+#: build/models.py:235
msgid "Select part to build"
msgstr "Teil für den Bauauftrag wählen"
-#: build/models.py:238
+#: build/models.py:240
msgid "Sales Order Reference"
msgstr "Auftrag Referenz"
-#: build/models.py:242
+#: build/models.py:244
msgid "SalesOrder to which this build is allocated"
msgstr "Bestellung, die diesem Bauauftrag zugewiesen ist"
-#: build/models.py:247 templates/js/translated/build.js:1407
+#: build/models.py:249 templates/js/translated/build.js:1407
#: templates/js/translated/order.js:1564
msgid "Source Location"
msgstr "Quell-Lagerort"
-#: build/models.py:251
+#: build/models.py:253
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:256
+#: build/models.py:258
msgid "Destination Location"
msgstr "Ziel-Lagerort"
-#: build/models.py:260
+#: build/models.py:262
msgid "Select location where the completed items will be stored"
msgstr "Lagerort an dem fertige Objekte gelagert werden auswählen"
-#: build/models.py:264
+#: build/models.py:266
msgid "Build Quantity"
msgstr "Bau-Anzahl"
-#: build/models.py:267
+#: build/models.py:269
msgid "Number of stock items to build"
msgstr "Anzahl der zu bauenden Lagerartikel"
-#: build/models.py:271
+#: build/models.py:273
msgid "Completed items"
msgstr "Fertiggestellte Teile"
-#: build/models.py:273
+#: build/models.py:275
msgid "Number of stock items which have been completed"
msgstr "Anzahl der fertigen Lagerartikel"
-#: build/models.py:277 part/templates/part/part_base.html:234
+#: build/models.py:279 part/templates/part/part_base.html:234
msgid "Build Status"
msgstr "Bauauftrags-Status"
-#: build/models.py:281
+#: build/models.py:283
msgid "Build status code"
msgstr "Bau-Statuscode"
-#: build/models.py:285 stock/models.py:531
+#: build/models.py:287 stock/models.py:533
msgid "Batch Code"
msgstr "Losnummer"
-#: build/models.py:289
+#: build/models.py:291
msgid "Batch code for this build output"
msgstr "Losnummer für dieses Endprodukt"
-#: build/models.py:292 order/models.py:126 part/models.py:967
+#: build/models.py:294 order/models.py:129 part/models.py:969
#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271
msgid "Creation Date"
msgstr "Erstelldatum"
-#: build/models.py:296 order/models.py:558
+#: build/models.py:298 order/models.py:563
msgid "Target completion date"
msgstr "geplantes Fertigstellungsdatum"
-#: build/models.py:297
+#: build/models.py:299
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Zieldatum für Bauauftrag-Fertigstellung."
-#: build/models.py:300 order/models.py:252
+#: build/models.py:302 order/models.py:255
#: templates/js/translated/build.js:1758
msgid "Completion Date"
msgstr "Fertigstellungsdatum"
-#: build/models.py:306
+#: build/models.py:308
msgid "completed by"
msgstr "Fertiggestellt von"
-#: build/models.py:314 templates/js/translated/build.js:1729
+#: build/models.py:316 templates/js/translated/build.js:1729
msgid "Issued by"
msgstr "Aufgegeben von"
-#: build/models.py:315
+#: build/models.py:317
msgid "User who issued this build order"
msgstr "Nutzer der diesen Bauauftrag erstellt hat"
-#: build/models.py:323 build/templates/build/build_base.html:185
-#: build/templates/build/detail.html:116 order/models.py:140
+#: build/models.py:325 build/templates/build/build_base.html:185
+#: build/templates/build/detail.html:116 order/models.py:143
#: order/templates/order/order_base.html:170
-#: order/templates/order/sales_order_base.html:182 part/models.py:971
+#: order/templates/order/sales_order_base.html:182 part/models.py:973
#: report/templates/report/inventree_build_order_base.html:159
#: templates/js/translated/build.js:1741 templates/js/translated/order.js:864
msgid "Responsible"
msgstr "Verantwortlicher Benutzer"
-#: build/models.py:324
+#: build/models.py:326
msgid "User responsible for this build order"
msgstr "Nutzer der für diesen Bauauftrag zuständig ist"
-#: build/models.py:329 build/templates/build/detail.html:102
+#: build/models.py:331 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:525
+#: part/templates/part/part_base.html:354 stock/models.py:527
#: stock/templates/stock/item_base.html:373
msgid "External Link"
msgstr "Externer Link"
-#: build/models.py:334 build/serializers.py:201
+#: build/models.py:336 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
-#: order/models.py:144 order/models.py:805 order/models.py:1051
+#: order/models.py:147 order/models.py:814 order/models.py:1071
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:17 part/models.py:956
-#: part/templates/part/detail.html:120 part/templates/part/part_sidebar.html:50
+#: order/templates/order/so_sidebar.html:17 part/models.py:958
+#: part/templates/part/detail.html:137 part/templates/part/part_sidebar.html:54
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:597
-#: stock/models.py:1867 stock/models.py:1973 stock/serializers.py:332
-#: stock/serializers.py:639 stock/serializers.py:737 stock/serializers.py:869
-#: stock/templates/stock/stock_sidebar.html:21
-#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:711
+#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:599
+#: stock/models.py:1895 stock/models.py:2001 stock/serializers.py:332
+#: stock/serializers.py:640 stock/serializers.py:738 stock/serializers.py:870
+#: stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:723
#: templates/js/translated/company.js:845 templates/js/translated/order.js:1149
#: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280
-#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1795
+#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1803
msgid "Notes"
msgstr "Notizen"
-#: build/models.py:335
+#: build/models.py:337
msgid "Extra build notes"
msgstr "Extranotizen für den Bauauftrag"
-#: build/models.py:710
+#: build/models.py:717
msgid "No build output specified"
msgstr "kein Endprodukt angegeben"
-#: build/models.py:713
+#: build/models.py:720
msgid "Build output is already completed"
msgstr "Endprodukt bereits hergstellt"
-#: build/models.py:716
+#: build/models.py:723
msgid "Build output does not match Build Order"
msgstr "Endprodukt stimmt nicht mit dem Bauauftrag überein"
-#: build/models.py:1108
+#: build/models.py:1115
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:1117
+#: build/models.py:1124
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr "Zugewiesene Menge ({q}) darf nicht verfügbare Menge ({a}) übersteigen"
-#: build/models.py:1127
+#: build/models.py:1134
msgid "Stock item is over-allocated"
msgstr "BestandObjekt ist zu oft zugewiesen"
-#: build/models.py:1133 order/models.py:1167
+#: build/models.py:1140 order/models.py:1189
msgid "Allocation quantity must be greater than zero"
msgstr "Reserviermenge muss größer null sein"
-#: build/models.py:1139
+#: build/models.py:1146
msgid "Quantity must be 1 for serialized stock"
msgstr "Anzahl muss 1 für Objekte mit Seriennummer sein"
-#: build/models.py:1196
+#: build/models.py:1203
msgid "Selected stock item not found in BOM"
msgstr "Ausgewähltes Bestands-Objekt nicht in Stückliste für Teil '{p}' gefunden"
-#: build/models.py:1256 stock/templates/stock/item_base.html:345
+#: build/models.py:1263 stock/templates/stock/item_base.html:345
#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1660
#: templates/navbar.html:35
msgid "Build"
msgstr "Bauauftrag"
-#: build/models.py:1257
+#: build/models.py:1264
msgid "Build to allocate parts"
msgstr "Bauauftrag starten um Teile zuzuweisen"
-#: build/models.py:1273 build/serializers.py:388 order/serializers.py:690
-#: order/serializers.py:708 stock/serializers.py:577 stock/serializers.py:695
+#: build/models.py:1280 build/serializers.py:388 order/serializers.py:696
+#: order/serializers.py:714 stock/serializers.py:578 stock/serializers.py:696
#: stock/templates/stock/item_base.html:9
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:367
@@ -920,24 +921,24 @@ msgstr "Bauauftrag starten um Teile zuzuweisen"
#: templates/js/translated/order.js:85 templates/js/translated/order.js:1577
#: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837
#: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030
-#: templates/js/translated/stock.js:555 templates/js/translated/stock.js:720
-#: templates/js/translated/stock.js:2470
+#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728
+#: templates/js/translated/stock.js:2628
msgid "Stock Item"
msgstr "Lagerartikel"
-#: build/models.py:1274
+#: build/models.py:1281
msgid "Source stock item"
msgstr "Quell-Lagerartikel"
-#: build/models.py:1287
+#: build/models.py:1294
msgid "Stock quantity to allocate to build"
msgstr "Anzahl an Lagerartikel dem Bauauftrag zuweisen"
-#: build/models.py:1295
+#: build/models.py:1302
msgid "Install into"
msgstr "Installiere in"
-#: build/models.py:1296
+#: build/models.py:1303
msgid "Destination stock item"
msgstr "Ziel-Lagerartikel"
@@ -962,16 +963,16 @@ msgid "This build output is not fully allocated"
msgstr "Dieses Endprodukt ist nicht vollständig zugewiesen"
#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294
-#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:730
-#: stock/serializers.py:971 stock/templates/stock/item_base.html:313
+#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:731
+#: stock/serializers.py:972 stock/templates/stock/item_base.html:313
#: templates/js/translated/barcode.js:384
#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:480
#: templates/js/translated/build.js:1087 templates/js/translated/order.js:508
#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955
#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044
-#: templates/js/translated/part.js:179 templates/js/translated/stock.js:556
-#: templates/js/translated/stock.js:721 templates/js/translated/stock.js:928
-#: templates/js/translated/stock.js:1676 templates/js/translated/stock.js:2411
+#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564
+#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936
+#: templates/js/translated/stock.js:1684 templates/js/translated/stock.js:2569
msgid "Location"
msgstr "Lagerort"
@@ -980,12 +981,12 @@ msgid "Location for completed build outputs"
msgstr "Lagerort für fertige Endprodukte"
#: build/serializers.py:197 build/templates/build/build_base.html:137
-#: build/templates/build/detail.html:63 order/models.py:552
+#: build/templates/build/detail.html:63 order/models.py:557
#: order/serializers.py:247 stock/templates/stock/item_base.html:187
#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1716
#: templates/js/translated/order.js:591 templates/js/translated/order.js:840
-#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1651
-#: templates/js/translated/stock.js:2488 templates/js/translated/stock.js:2637
+#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:2646 templates/js/translated/stock.js:2795
msgid "Status"
msgstr "Status"
@@ -1021,8 +1022,8 @@ msgstr "Benötigte Teil-Anzahl wurde noch nicht fertiggestellt"
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:313 build/serializers.py:362 part/models.py:2753
-#: part/models.py:2912
+#: build/serializers.py:313 build/serializers.py:362 part/models.py:2760
+#: part/models.py:2919
msgid "BOM Item"
msgstr "Stücklisten-Position"
@@ -1038,16 +1039,16 @@ msgstr "Endprodukt muss auf den gleichen Bauauftrag verweisen"
msgid "bom_item.part must point to the same part as the build order"
msgstr "bom_item.part muss auf dasselbe Teil verweisen wie der Bauauftrag"
-#: build/serializers.py:394 stock/serializers.py:584
+#: build/serializers.py:394 stock/serializers.py:585
msgid "Item must be in stock"
msgstr "Teil muss auf Lager sein"
-#: build/serializers.py:408 order/models.py:277 order/serializers.py:240
-#: stock/models.py:365 stock/models.py:1077 stock/serializers.py:305
+#: build/serializers.py:408 order/models.py:280 order/serializers.py:240
+#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr "Anzahl muss größer Null sein"
-#: build/serializers.py:450 order/serializers.py:741
+#: build/serializers.py:450 order/serializers.py:747
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Verfügbare Menge ({q}) überschritten"
@@ -1060,7 +1061,7 @@ msgstr "Für Zuweisung von verfolgten Teilen muss ein Endprodukt angegeben sein"
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr "Endprodukt kann bei Zuweisung nicht-verfolgter Teile nicht angegeben werden"
-#: build/serializers.py:491 order/serializers.py:984
+#: build/serializers.py:491 order/serializers.py:990
msgid "Allocation items must be provided"
msgstr "Zuweisungen müssen angegeben werden"
@@ -1164,13 +1165,13 @@ msgid "Completed"
msgstr "Fertig"
#: build/templates/build/build_base.html:171
-#: build/templates/build/detail.html:95 order/models.py:927
-#: order/models.py:1023 order/templates/order/sales_order_base.html:9
+#: build/templates/build/detail.html:95 order/models.py:947
+#: order/models.py:1043 order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/order.js:1218
+#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2304
msgid "Sales Order"
msgstr "Auftrag"
@@ -1224,7 +1225,7 @@ msgstr "Ausgangs-Lager"
msgid "Stock can be taken from any available location."
msgstr "Bestand kann jedem verfügbaren Lagerort entnommen werden."
-#: build/templates/build/detail.html:50 order/models.py:878 stock/forms.py:136
+#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:136
#: templates/js/translated/order.js:592 templates/js/translated/order.js:1138
msgid "Destination"
msgstr "Ziel-Lager"
@@ -1239,7 +1240,7 @@ msgstr "Zugewiesene Teile"
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:331
-#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2644
+#: templates/js/translated/stock.js:1673 templates/js/translated/stock.js:2802
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:238
msgid "Batch"
@@ -1343,9 +1344,9 @@ msgstr "Fertiggestellte Endprodukte"
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:107
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:196
-#: part/templates/part/part_sidebar.html:48 stock/templates/stock/item.html:95
-#: stock/templates/stock/stock_sidebar.html:19
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:213
+#: part/templates/part/part_sidebar.html:52 stock/templates/stock/item.html:112
+#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr "Anhänge"
@@ -1360,8 +1361,8 @@ msgstr "Bauauftrags-Notizen"
#: order/templates/order/purchase_order_detail.html:108
#: order/templates/order/sales_order_detail.html:127
#: order/templates/order/sales_order_detail.html:186
-#: part/templates/part/detail.html:124 stock/templates/stock/item.html:115
-#: stock/templates/stock/item.html:205
+#: part/templates/part/detail.html:141 stock/templates/stock/item.html:132
+#: stock/templates/stock/item.html:235
msgid "Edit Notes"
msgstr "Anmerkungen bearbeiten"
@@ -1373,7 +1374,7 @@ msgstr "Zuordnung abgeschlossen"
msgid "All untracked stock items have been allocated"
msgstr "Alle nicht verfolgten Lagerartikel wurden zugewiesen"
-#: build/templates/build/index.html:18 part/templates/part/detail.html:303
+#: build/templates/build/index.html:18 part/templates/part/detail.html:320
msgid "New Build Order"
msgstr "Neuer Bauauftrag"
@@ -1453,23 +1454,23 @@ msgstr "Endprodukt gelöscht"
msgid "Delete Build Order"
msgstr "Bauauftrag löschen"
-#: common/files.py:67
+#: common/files.py:65
msgid "Unsupported file format: {ext.upper()}"
msgstr "Dateiformat nicht unterstützt: {ext.upper()}"
-#: common/files.py:69
+#: common/files.py:67
msgid "Error reading file (invalid encoding)"
msgstr "Fehler beim Lesen der Datei (ungültige Kodierung)"
-#: common/files.py:74
+#: common/files.py:72
msgid "Error reading file (invalid format)"
msgstr "Fehler beim Lesen der Datei (ungültiges Format)"
-#: common/files.py:76
+#: common/files.py:74
msgid "Error reading file (incorrect dimension)"
msgstr "Fehler beim Lesen der Datei (falsche Größe)"
-#: common/files.py:78
+#: common/files.py:76
msgid "Error reading file (data could be corrupted)"
msgstr "Fehler beim Lesen der Datei (Daten könnten beschädigt sein)"
@@ -1490,740 +1491,828 @@ msgstr "{name.title()} Datei"
msgid "Select {name} file to upload"
msgstr "{name} Datei zum Hochladen auswählen"
-#: common/models.py:344 common/models.py:998 common/models.py:1206
-msgid "Settings key (must be unique - case insensitive"
-msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)"
+#: common/models.py:352
+msgid "Settings key (must be unique - case insensitive)"
+msgstr ""
-#: common/models.py:346
+#: common/models.py:354
msgid "Settings value"
msgstr "Einstellungs-Wert"
-#: common/models.py:380
+#: common/models.py:388
msgid "Chosen value is not a valid option"
msgstr "Wert ist keine gültige Option"
-#: common/models.py:400
+#: common/models.py:408
msgid "Value must be a boolean value"
msgstr "Wahrheitswert erforderlich"
-#: common/models.py:411
+#: common/models.py:419
msgid "Value must be an integer value"
msgstr "Nur Ganzzahl eingeben"
-#: common/models.py:434
+#: common/models.py:442
msgid "Key string must be unique"
msgstr "Schlüsseltext muss eindeutig sein"
-#: common/models.py:553
+#: common/models.py:561
msgid "No group"
msgstr "Keine Gruppe"
-#: common/models.py:595
+#: common/models.py:603
msgid "Restart required"
msgstr "Neustart erforderlich"
-#: common/models.py:596
+#: common/models.py:604
msgid "A setting has been changed which requires a server restart"
msgstr "Eine Einstellung wurde geändert, die einen Neustart des Servers erfordert"
-#: common/models.py:603
+#: common/models.py:611
msgid "InvenTree Instance Name"
msgstr "InvenTree Instanzname"
-#: common/models.py:605
+#: common/models.py:613
msgid "String descriptor for the server instance"
msgstr "Kurze Beschreibung der Instanz"
-#: common/models.py:609
+#: common/models.py:617
msgid "Use instance name"
msgstr "Name der Instanz verwenden"
-#: common/models.py:610
+#: common/models.py:618
msgid "Use the instance name in the title-bar"
msgstr "Den Namen der Instanz in der Titelleiste verwenden"
-#: common/models.py:616 company/models.py:100 company/models.py:101
+#: common/models.py:624 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr "Firmenname"
-#: common/models.py:617
+#: common/models.py:625
msgid "Internal company name"
msgstr "interner Firmenname"
-#: common/models.py:622
+#: common/models.py:630
msgid "Base URL"
msgstr "Basis-URL"
-#: common/models.py:623
+#: common/models.py:631
msgid "Base URL for server instance"
msgstr "Basis-URL für dieses Instanz"
-#: common/models.py:629
+#: common/models.py:637
msgid "Default Currency"
msgstr "Standardwährung"
-#: common/models.py:630
+#: common/models.py:638
msgid "Default currency"
msgstr "Standardwährung"
-#: common/models.py:636
+#: common/models.py:644
msgid "Download from URL"
msgstr "Von URL herunterladen"
-#: common/models.py:637
+#: common/models.py:645
msgid "Allow download of remote images and files from external URL"
msgstr "Herunterladen von externen Bildern und Dateien von URLs erlaubt"
-#: common/models.py:643 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:651 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr "Bacode-Feature verwenden"
-#: common/models.py:644
+#: common/models.py:652
msgid "Enable barcode scanner support"
msgstr "Barcode-Scanner Unterstützung"
-#: common/models.py:650
+#: common/models.py:658
msgid "IPN Regex"
msgstr "IPN Regex"
-#: common/models.py:651
+#: common/models.py:659
msgid "Regular expression pattern for matching Part IPN"
msgstr "RegEx Muster für die Zuordnung von Teil-IPN"
-#: common/models.py:655
+#: common/models.py:663
msgid "Allow Duplicate IPN"
msgstr "Mehrere Artikel mit gleicher IPN erlaubt"
-#: common/models.py:656
+#: common/models.py:664
msgid "Allow multiple parts to share the same IPN"
msgstr "Mehrere Artikel mit gleicher IPN erlaubt"
-#: common/models.py:662
+#: common/models.py:670
msgid "Allow Editing IPN"
msgstr "Ändern von IPN erlaubt"
-#: common/models.py:663
+#: common/models.py:671
msgid "Allow changing the IPN value while editing a part"
msgstr "Ändern der IPN während des Bearbeiten eines Teils erlaubt"
-#: common/models.py:669
+#: common/models.py:677
msgid "Copy Part BOM Data"
msgstr "Teil-Stückliste kopieren"
-#: common/models.py:670
+#: common/models.py:678
msgid "Copy BOM data by default when duplicating a part"
msgstr "Stückliste von Teil kopieren wenn das Teil dupliziert wird "
-#: common/models.py:676
+#: common/models.py:684
msgid "Copy Part Parameter Data"
msgstr "Teil-Parameter kopieren"
-#: common/models.py:677
+#: common/models.py:685
msgid "Copy parameter data by default when duplicating a part"
msgstr "Parameter-Daten für dieses Teil kopieren wenn das Teil dupliziert wird"
-#: common/models.py:683
+#: common/models.py:691
msgid "Copy Part Test Data"
msgstr "Teil-Testdaten kopieren"
-#: common/models.py:684
+#: common/models.py:692
msgid "Copy test data by default when duplicating a part"
msgstr "Test-Daten für dieses Teil kopieren wenn das Teil dupliziert wird"
-#: common/models.py:690
+#: common/models.py:698
msgid "Copy Category Parameter Templates"
msgstr "Kategorie-Parametervorlage kopieren"
-#: common/models.py:691
+#: common/models.py:699
msgid "Copy category parameter templates when creating a part"
msgstr "Kategorie-Parameter Vorlagen kopieren wenn ein Teil angelegt wird"
-#: common/models.py:697 part/models.py:2482 report/models.py:187
+#: common/models.py:705 part/models.py:2489 report/models.py:187
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:422
msgid "Template"
msgstr "Vorlage"
-#: common/models.py:698
+#: common/models.py:706
msgid "Parts are templates by default"
msgstr "Teile sind standardmäßig Vorlagen"
-#: common/models.py:704 part/models.py:919 templates/js/translated/bom.js:1068
+#: common/models.py:712 part/models.py:921 templates/js/translated/bom.js:1082
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:434
msgid "Assembly"
msgstr "Baugruppe"
-#: common/models.py:705
+#: common/models.py:713
msgid "Parts can be assembled from other components by default"
msgstr "Teile können standardmäßig aus anderen Teilen angefertigt werden"
-#: common/models.py:711 part/models.py:925
+#: common/models.py:719 part/models.py:927
#: templates/js/translated/table_filters.js:438
msgid "Component"
msgstr "Komponente"
-#: common/models.py:712
+#: common/models.py:720
msgid "Parts can be used as sub-components by default"
msgstr "Teile können standardmäßig in Baugruppen benutzt werden"
-#: common/models.py:718 part/models.py:936
+#: common/models.py:726 part/models.py:938
msgid "Purchaseable"
msgstr "Kaufbar"
-#: common/models.py:719
+#: common/models.py:727
msgid "Parts are purchaseable by default"
msgstr "Artikel sind grundsätzlich kaufbar"
-#: common/models.py:725 part/models.py:941
+#: common/models.py:733 part/models.py:943
#: templates/js/translated/table_filters.js:446
msgid "Salable"
msgstr "Verkäuflich"
-#: common/models.py:726
+#: common/models.py:734
msgid "Parts are salable by default"
msgstr "Artikel sind grundsätzlich verkaufbar"
-#: common/models.py:732 part/models.py:931
+#: common/models.py:740 part/models.py:933
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
#: templates/js/translated/table_filters.js:450
msgid "Trackable"
msgstr "Nachverfolgbar"
-#: common/models.py:733
+#: common/models.py:741
msgid "Parts are trackable by default"
msgstr "Artikel sind grundsätzlich verfolgbar"
-#: common/models.py:739 part/models.py:951
+#: common/models.py:747 part/models.py:953
#: part/templates/part/part_base.html:147
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr "Virtuell"
-#: common/models.py:740
+#: common/models.py:748
msgid "Parts are virtual by default"
msgstr "Teile sind grundsätzlich virtuell"
-#: common/models.py:746
+#: common/models.py:754
msgid "Show Import in Views"
msgstr "Import in Ansichten anzeigen"
-#: common/models.py:747
+#: common/models.py:755
msgid "Display the import wizard in some part views"
msgstr "Importassistent in einigen Teil-Ansichten anzeigen"
-#: common/models.py:753
+#: common/models.py:761
msgid "Show Price in Forms"
msgstr "Preis in Formularen anzeigen"
-#: common/models.py:754
+#: common/models.py:762
msgid "Display part price in some forms"
msgstr "Teilpreis in einigen Formularen anzeigen"
-#: common/models.py:765
+#: common/models.py:773
msgid "Show Price in BOM"
msgstr "Preis in Stückliste anzeigen"
-#: common/models.py:766
+#: common/models.py:774
msgid "Include pricing information in BOM tables"
msgstr "Preisinformationen in Stücklisten Tabellen einbeziehen"
-#: common/models.py:772
+#: common/models.py:780
msgid "Show related parts"
msgstr "Verwandte Teile anzeigen"
-#: common/models.py:773
+#: common/models.py:781
msgid "Display related parts for a part"
msgstr "Verwandte Teile eines Teils anzeigen"
-#: common/models.py:779
+#: common/models.py:787
msgid "Create initial stock"
msgstr "Ausgangsbestand erstellen"
-#: common/models.py:780
+#: common/models.py:788
msgid "Create initial stock on part creation"
msgstr "Ausgangsbestand beim Erstellen von Teilen erstellen"
-#: common/models.py:786
+#: common/models.py:794
msgid "Internal Prices"
msgstr "Interne Preise"
-#: common/models.py:787
+#: common/models.py:795
msgid "Enable internal prices for parts"
msgstr "Interne Preise für Teile aktivieren"
-#: common/models.py:793
+#: common/models.py:801
msgid "Internal Price as BOM-Price"
msgstr "Interner Preis als Stückliste-Preis"
-#: common/models.py:794
+#: common/models.py:802
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr "Interner Preis (falls vorhanden) in Stücklisten-Preisberechnungen verwenden"
-#: common/models.py:800
+#: common/models.py:808
msgid "Part Name Display Format"
msgstr "Anzeigeformat für Teilenamen"
-#: common/models.py:801
+#: common/models.py:809
msgid "Format to display the part name"
msgstr "Format für den Namen eines Teiles"
-#: common/models.py:808
+#: common/models.py:816
msgid "Enable Reports"
msgstr "Berichte aktivieren"
-#: common/models.py:809
+#: common/models.py:817
msgid "Enable generation of reports"
msgstr "Berichterstellung aktivieren"
-#: common/models.py:815 templates/stats.html:25
+#: common/models.py:823 templates/stats.html:25
msgid "Debug Mode"
msgstr "Entwickler-Modus"
-#: common/models.py:816
+#: common/models.py:824
msgid "Generate reports in debug mode (HTML output)"
msgstr "Berichte im Entwickler-Modus generieren (als HTML)"
-#: common/models.py:822
+#: common/models.py:830
msgid "Page Size"
msgstr "Seitengröße"
-#: common/models.py:823
+#: common/models.py:831
msgid "Default page size for PDF reports"
msgstr "Standardseitenformat für PDF-Bericht"
-#: common/models.py:833
+#: common/models.py:841
msgid "Test Reports"
msgstr "Test-Berichte"
-#: common/models.py:834
+#: common/models.py:842
msgid "Enable generation of test reports"
msgstr "Erstellung von Test-Berichten aktivieren"
-#: common/models.py:840
+#: common/models.py:848
msgid "Stock Expiry"
msgstr "Bestands-Ablauf"
-#: common/models.py:841
+#: common/models.py:849
msgid "Enable stock expiry functionality"
msgstr "Ablaufen von Bestand ermöglichen"
-#: common/models.py:847
+#: common/models.py:855
msgid "Sell Expired Stock"
msgstr "Abgelaufenen Bestand verkaufen"
-#: common/models.py:848
+#: common/models.py:856
msgid "Allow sale of expired stock"
msgstr "Verkauf von abgelaufenem Bestand erlaubt"
-#: common/models.py:854
+#: common/models.py:862
msgid "Stock Stale Time"
msgstr "Bestands-Stehzeit"
-#: common/models.py:855
+#: common/models.py:863
msgid "Number of days stock items are considered stale before expiring"
msgstr "Anzahl an Tagen, an denen Bestand als abgestanden markiert wird, bevor sie ablaufen"
-#: common/models.py:857
+#: common/models.py:865
msgid "days"
msgstr "Tage"
-#: common/models.py:862
+#: common/models.py:870
msgid "Build Expired Stock"
msgstr "Abgelaufenen Bestand verbauen"
-#: common/models.py:863
+#: common/models.py:871
msgid "Allow building with expired stock"
msgstr "Verbauen von abgelaufenen Bestand erlaubt"
-#: common/models.py:869
+#: common/models.py:877
msgid "Stock Ownership Control"
msgstr "Bestands-Eigentümerkontrolle"
-#: common/models.py:870
+#: common/models.py:878
msgid "Enable ownership control over stock locations and items"
msgstr "Eigentümerkontrolle für Lagerorte und Teile aktivieren"
-#: common/models.py:876
-msgid "Group by Part"
-msgstr "Gruppieren nach Teil"
-
-#: common/models.py:877
-msgid "Group stock items by part reference in table views"
-msgstr "Bestand in Tabellen anhand von Teil-Referenz gruppieren"
-
-#: common/models.py:883
+#: common/models.py:884
msgid "Build Order Reference Prefix"
msgstr "Bauauftrag-Referenz Präfix"
-#: common/models.py:884
+#: common/models.py:885
msgid "Prefix value for build order reference"
msgstr "Präfix für Bauauftrag-Referenz"
-#: common/models.py:889
+#: common/models.py:890
msgid "Build Order Reference Regex"
msgstr "Bauauftrag-Referenz RegEx"
-#: common/models.py:890
+#: common/models.py:891
msgid "Regular expression pattern for matching build order reference"
msgstr "RegEx Muster für die Zuordnung von Bauauftrag-Referenzen"
-#: common/models.py:894
+#: common/models.py:895
msgid "Sales Order Reference Prefix"
msgstr "Auftrags-Referenz Präfix"
-#: common/models.py:895
+#: common/models.py:896
msgid "Prefix value for sales order reference"
msgstr "Präfix für Auftrags-Referenz"
-#: common/models.py:900
+#: common/models.py:901
msgid "Purchase Order Reference Prefix"
msgstr "Bestellungs-Referenz Präfix"
-#: common/models.py:901
+#: common/models.py:902
msgid "Prefix value for purchase order reference"
msgstr "Präfix für Bestellungs-Referenz"
-#: common/models.py:907
+#: common/models.py:908
msgid "Enable password forgot"
msgstr "Passwort vergessen aktivieren"
-#: common/models.py:908
+#: common/models.py:909
msgid "Enable password forgot function on the login pages"
msgstr "Passwort-vergessen-Funktion auf den Anmeldeseiten aktivieren"
-#: common/models.py:913
+#: common/models.py:914
msgid "Enable registration"
msgstr "Anmeldung erlauben"
-#: common/models.py:914
+#: common/models.py:915
msgid "Enable self-registration for users on the login pages"
msgstr "Selbstregistrierung für Benutzer auf den Anmeldeseiten aktivieren"
-#: common/models.py:919
+#: common/models.py:920
msgid "Enable SSO"
msgstr "SSO aktivieren"
-#: common/models.py:920
+#: common/models.py:921
msgid "Enable SSO on the login pages"
msgstr "SSO auf den Anmeldeseiten aktivieren"
-#: common/models.py:925
+#: common/models.py:926
msgid "Email required"
msgstr "Email-Adresse erforderlich"
-#: common/models.py:926
+#: common/models.py:927
msgid "Require user to supply mail on signup"
msgstr "Benutzer müssen bei der Registrierung eine E-Mail angeben"
-#: common/models.py:931
+#: common/models.py:932
msgid "Auto-fill SSO users"
msgstr "SSO-Benutzer automatisch ausfüllen"
-#: common/models.py:932
+#: common/models.py:933
msgid "Automatically fill out user-details from SSO account-data"
msgstr "Benutzer-Details automatisch aus SSO-Konto ausfüllen"
-#: common/models.py:937
+#: common/models.py:938
msgid "Mail twice"
msgstr "E-Mail zweimal"
-#: common/models.py:938
+#: common/models.py:939
msgid "On signup ask users twice for their mail"
msgstr "Bei der Registrierung den Benutzer zweimal nach der E-Mail-Adresse fragen"
-#: common/models.py:943
+#: common/models.py:944
msgid "Password twice"
msgstr "Passwort zweimal"
-#: common/models.py:944
+#: common/models.py:945
msgid "On signup ask users twice for their password"
msgstr "Bei der Registrierung den Benutzer zweimal nach dem Passwort fragen"
-#: common/models.py:949
+#: common/models.py:950
msgid "Group on signup"
msgstr "Gruppe bei Registrierung"
-#: common/models.py:950
+#: common/models.py:951
msgid "Group to which new users are assigned on registration"
msgstr "Gruppe der neue Benutzer bei der Registrierung zugewiesen werden"
-#: common/models.py:955
+#: common/models.py:956
msgid "Enforce MFA"
msgstr "MFA erzwingen"
-#: common/models.py:956
+#: common/models.py:957
msgid "Users must use multifactor security."
msgstr "Benutzer müssen Multifaktor-Authentifizierung verwenden."
-#: common/models.py:961
+#: common/models.py:964
msgid "Enable URL integration"
msgstr "URL-Integration aktivieren"
-#: common/models.py:962
+#: common/models.py:965
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:968
+#: common/models.py:971
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:969
+#: common/models.py:972
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:975
+#: common/models.py:978
msgid "Enable app integration"
msgstr ""
-#: common/models.py:976
+#: common/models.py:979
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:982
+#: common/models.py:985
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:983
+#: common/models.py:986
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1029
+#: common/models.py:992
+msgid "Enable event integration"
+msgstr ""
+
+#: common/models.py:993
+msgid "Enable plugins to respond to internal events"
+msgstr ""
+
+#: common/models.py:1008 common/models.py:1216
+msgid "Settings key (must be unique - case insensitive"
+msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)"
+
+#: common/models.py:1039
msgid "Show subscribed parts"
msgstr "Abonnierte Teile anzeigen"
-#: common/models.py:1030
+#: common/models.py:1040
msgid "Show subscribed parts on the homepage"
msgstr "Zeige abonnierte Teile auf der Startseite"
-#: common/models.py:1035
+#: common/models.py:1045
msgid "Show subscribed categories"
msgstr "Abonnierte Kategorien anzeigen"
-#: common/models.py:1036
+#: common/models.py:1046
msgid "Show subscribed part categories on the homepage"
msgstr "Zeige abonnierte Teilkategorien auf der Startseite"
-#: common/models.py:1041
+#: common/models.py:1051
msgid "Show latest parts"
msgstr "Neueste Teile anzeigen"
-#: common/models.py:1042
+#: common/models.py:1052
msgid "Show latest parts on the homepage"
msgstr "Zeige neueste Teile auf der Startseite"
-#: common/models.py:1047
+#: common/models.py:1057
msgid "Recent Part Count"
msgstr "Aktuelle Teile-Stände"
-#: common/models.py:1048
+#: common/models.py:1058
msgid "Number of recent parts to display on index page"
msgstr "Anzahl der neusten Teile auf der Startseite"
-#: common/models.py:1054
+#: common/models.py:1064
msgid "Show unvalidated BOMs"
msgstr "Nicht validierte Stücklisten anzeigen"
-#: common/models.py:1055
+#: common/models.py:1065
msgid "Show BOMs that await validation on the homepage"
msgstr "Zeige Stücklisten, die noch nicht validiert sind, auf der Startseite"
-#: common/models.py:1060
+#: common/models.py:1070
msgid "Show recent stock changes"
msgstr "Neueste Bestandänderungen anzeigen"
-#: common/models.py:1061
+#: common/models.py:1071
msgid "Show recently changed stock items on the homepage"
msgstr "Zeige zuletzt geänderte Lagerbestände auf der Startseite"
-#: common/models.py:1066
+#: common/models.py:1076
msgid "Recent Stock Count"
msgstr "aktueller Bestand"
-#: common/models.py:1067
+#: common/models.py:1077
msgid "Number of recent stock items to display on index page"
msgstr "Anzahl des geänderten Bestands auf der Startseite"
-#: common/models.py:1072
+#: common/models.py:1082
msgid "Show low stock"
msgstr "Niedrigen Bestand anzeigen"
-#: common/models.py:1073
+#: common/models.py:1083
msgid "Show low stock items on the homepage"
msgstr "Zeige geringen Bestand auf der Startseite"
-#: common/models.py:1078
+#: common/models.py:1088
msgid "Show depleted stock"
msgstr "Lerren Bestand anzeigen"
-#: common/models.py:1079
+#: common/models.py:1089
msgid "Show depleted stock items on the homepage"
msgstr "Zeige aufgebrauchte Lagerartikel auf der Startseite"
-#: common/models.py:1084
+#: common/models.py:1094
msgid "Show needed stock"
msgstr "Benötigten Bestand anzeigen"
-#: common/models.py:1085
+#: common/models.py:1095
msgid "Show stock items needed for builds on the homepage"
msgstr "Zeige Bestand für Bauaufträge auf der Startseite"
-#: common/models.py:1090
+#: common/models.py:1100
msgid "Show expired stock"
msgstr "Abgelaufenen Bestand anzeigen"
-#: common/models.py:1091
+#: common/models.py:1101
msgid "Show expired stock items on the homepage"
msgstr "Zeige abgelaufene Lagerbestände auf der Startseite"
-#: common/models.py:1096
+#: common/models.py:1106
msgid "Show stale stock"
msgstr "Alten Bestand anzeigen"
-#: common/models.py:1097
+#: common/models.py:1107
msgid "Show stale stock items on the homepage"
msgstr "Zeige überfällige Lagerartikel auf der Startseite"
-#: common/models.py:1102
+#: common/models.py:1112
msgid "Show pending builds"
msgstr "Ausstehende Bauaufträge anzeigen"
-#: common/models.py:1103
+#: common/models.py:1113
msgid "Show pending builds on the homepage"
msgstr "Zeige ausstehende Bauaufträge auf der Startseite"
-#: common/models.py:1108
+#: common/models.py:1118
msgid "Show overdue builds"
msgstr "Zeige überfällige Bauaufträge"
-#: common/models.py:1109
+#: common/models.py:1119
msgid "Show overdue builds on the homepage"
msgstr "Zeige überfällige Bauaufträge auf der Startseite"
-#: common/models.py:1114
+#: common/models.py:1124
msgid "Show outstanding POs"
msgstr "Ausstehende POs anzeigen"
-#: common/models.py:1115
+#: common/models.py:1125
msgid "Show outstanding POs on the homepage"
msgstr "Zeige ausstehende POs auf der Startseite"
-#: common/models.py:1120
+#: common/models.py:1130
msgid "Show overdue POs"
msgstr "Überfällige POs anzeigen"
-#: common/models.py:1121
+#: common/models.py:1131
msgid "Show overdue POs on the homepage"
msgstr "Zeige überfällige POs auf der Startseite"
-#: common/models.py:1126
+#: common/models.py:1136
msgid "Show outstanding SOs"
msgstr "Ausstehende SOs anzeigen"
-#: common/models.py:1127
+#: common/models.py:1137
msgid "Show outstanding SOs on the homepage"
msgstr "Zeige ausstehende SOs auf der Startseite"
-#: common/models.py:1132
+#: common/models.py:1142
msgid "Show overdue SOs"
msgstr "Überfällige SOs anzeigen"
-#: common/models.py:1133
+#: common/models.py:1143
msgid "Show overdue SOs on the homepage"
msgstr "Zeige überfällige SOs auf der Startseite"
-#: common/models.py:1139
+#: common/models.py:1149
msgid "Inline label display"
msgstr "Label inline anzeigen"
-#: common/models.py:1140
+#: common/models.py:1150
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr "PDF-Labels im Browser anzeigen, anstatt als Datei herunterzuladen"
-#: common/models.py:1146
+#: common/models.py:1156
msgid "Inline report display"
msgstr "Berichte inline anzeigen"
-#: common/models.py:1147
+#: common/models.py:1157
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr "PDF-Berichte im Browser anzeigen, anstatt als Datei herunterzuladen"
-#: common/models.py:1153
+#: common/models.py:1163
msgid "Search Preview Results"
msgstr "Anzahl Suchergebnisse"
-#: common/models.py:1154
+#: common/models.py:1164
msgid "Number of results to show in search preview window"
msgstr "Anzahl der Ergebnisse, die in der Vorschau angezeigt werden sollen"
-#: common/models.py:1160
+#: common/models.py:1170
msgid "Search Show Stock"
msgstr "Suche Bestand anzeigen"
-#: common/models.py:1161
+#: common/models.py:1171
msgid "Display stock levels in search preview window"
msgstr "Bestand in Suchvorschau anzeigen"
-#: common/models.py:1167
+#: common/models.py:1177
msgid "Hide Inactive Parts"
msgstr "Inaktive Teile ausblenden"
-#: common/models.py:1168
+#: common/models.py:1178
msgid "Hide inactive parts in search preview window"
msgstr "Inaktive Teile in der Suchvorschau ausblenden"
-#: common/models.py:1174
+#: common/models.py:1184
msgid "Show Quantity in Forms"
msgstr "zeige Bestand in Eingabemasken"
-#: common/models.py:1175
+#: common/models.py:1185
msgid "Display available part quantity in some forms"
msgstr "Zeige den verfügbaren Bestand in einigen Eingabemasken"
-#: common/models.py:1181
+#: common/models.py:1191
msgid "Escape Key Closes Forms"
msgstr "Esc-Taste schließt Formulare"
-#: common/models.py:1182
+#: common/models.py:1192
msgid "Use the escape key to close modal forms"
msgstr "Benutze die Esc-Taste, um Formulare zu schließen"
-#: common/models.py:1188
+#: common/models.py:1198
msgid "Fixed Navbar"
msgstr "Fixierter Navigationsleiste"
-#: common/models.py:1189
+#: common/models.py:1199
msgid "InvenTree navbar position is fixed to the top of the screen"
msgstr "Position der InvenTree Navigationsleiste am oberen Bildschirmrand fixieren"
-#: common/models.py:1254 company/forms.py:43
+#: common/models.py:1264 company/forms.py:43
msgid "Price break quantity"
msgstr "Preisstaffelungs Anzahl"
-#: common/models.py:1261 company/serializers.py:264
+#: common/models.py:1271 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:909 templates/js/translated/part.js:1860
+#: templates/js/translated/part.js:915 templates/js/translated/part.js:1867
msgid "Price"
msgstr "Preis"
-#: common/models.py:1262
+#: common/models.py:1272
msgid "Unit price at specified quantity"
msgstr "Stückpreis für die angegebene Anzahl"
+#: common/models.py:1429 common/models.py:1568
+msgid "Endpoint"
+msgstr "Endpunkt"
+
+#: common/models.py:1430
+msgid "Endpoint at which this webhook is received"
+msgstr "Endpunkt, an dem dieser Webhook empfangen wird"
+
+#: common/models.py:1439
+msgid "Name for this webhook"
+msgstr "Name für diesen Webhook"
+
+#: common/models.py:1444 part/models.py:948 plugin/models.py:46
+#: templates/js/translated/table_filters.js:34
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:295
+#: templates/js/translated/table_filters.js:417
+msgid "Active"
+msgstr "Aktiv"
+
+#: common/models.py:1445
+msgid "Is this webhook active"
+msgstr "Ist dieser Webhook aktiv"
+
+#: common/models.py:1459
+msgid "Token"
+msgstr "Token"
+
+#: common/models.py:1460
+msgid "Token for access"
+msgstr "Token für Zugang"
+
+#: common/models.py:1467
+msgid "Secret"
+msgstr ""
+
+#: common/models.py:1468
+msgid "Shared secret for HMAC"
+msgstr ""
+
+#: common/models.py:1535
+msgid "Message ID"
+msgstr ""
+
+#: common/models.py:1536
+msgid "Unique identifier for this message"
+msgstr "Eindeutige Kennung für diese Nachricht"
+
+#: common/models.py:1544
+msgid "Host"
+msgstr "Host"
+
+#: common/models.py:1545
+msgid "Host from which this message was received"
+msgstr "Host von dem diese Nachricht empfangen wurde"
+
+#: common/models.py:1552
+msgid "Header"
+msgstr "Header"
+
+#: common/models.py:1553
+msgid "Header of this message"
+msgstr "Header dieser Nachricht"
+
+#: common/models.py:1559
+msgid "Body"
+msgstr "Body"
+
+#: common/models.py:1560
+msgid "Body of this message"
+msgstr "Body dieser Nachricht"
+
+#: common/models.py:1569
+msgid "Endpoint on which this message was received"
+msgstr "Endpunkt, über den diese Nachricht empfangen wurde"
+
+#: common/models.py:1574
+msgid "Worked on"
+msgstr ""
+
+#: common/models.py:1575
+msgid "Was the work on this message finished?"
+msgstr ""
+
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
#: part/templates/part/bom_upload/upload_file.html:52
-#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
-#: part/views.py:764
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:213
+#: part/views.py:773
msgid "Upload File"
msgstr "Datei hochgeladen"
#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
-#: part/views.py:765
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:214
+#: part/views.py:774
msgid "Match Fields"
msgstr "Übereinstimmende Felder"
@@ -2315,7 +2404,7 @@ msgstr "Anlaufstelle"
msgid "Link to external company information"
msgstr "Link auf externe Firmeninformation"
-#: company/models.py:139 part/models.py:838
+#: company/models.py:139 part/models.py:840
msgid "Image"
msgstr "Bild"
@@ -2352,8 +2441,8 @@ msgstr "Währung"
msgid "Default currency used for this company"
msgstr "Standard-Währung für diese Firma"
-#: company/models.py:320 company/models.py:535 stock/models.py:469
-#: stock/templates/stock/item_base.html:142
+#: company/models.py:320 company/models.py:535 stock/models.py:471
+#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:328
msgid "Base Part"
msgstr "Basisteil"
@@ -2380,7 +2469,7 @@ msgstr "Hersteller auswählen"
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:818 templates/js/translated/order.js:1038
-#: templates/js/translated/part.js:245 templates/js/translated/part.js:889
+#: templates/js/translated/part.js:245 templates/js/translated/part.js:895
msgid "MPN"
msgstr "MPN"
@@ -2409,8 +2498,8 @@ msgstr "Parametername"
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1960 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:709 templates/js/translated/stock.js:1296
+#: stock/models.py:1988 templates/js/translated/company.js:647
+#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1304
msgid "Value"
msgstr "Wert"
@@ -2418,10 +2507,10 @@ msgstr "Wert"
msgid "Parameter value"
msgstr "Parameterwert"
-#: company/models.py:429 part/models.py:913 part/models.py:2450
+#: company/models.py:429 part/models.py:915 part/models.py:2457
#: part/templates/part/part_base.html:288
-#: templates/InvenTree/settings/settings.html:284
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:715
+#: templates/InvenTree/settings/settings.html:287
+#: templates/js/translated/company.js:653 templates/js/translated/part.js:721
msgid "Units"
msgstr "Einheiten"
@@ -2434,13 +2523,13 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr "Verlinktes Herstellerteil muss dasselbe Basisteil referenzieren"
#: company/models.py:545 company/templates/company/company_base.html:78
-#: company/templates/company/supplier_part.html:87 order/models.py:224
+#: company/templates/company/supplier_part.html:87 order/models.py:227
#: order/templates/order/order_base.html:112
-#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
-#: part/bom.py:247 stock/templates/stock/item_base.html:397
+#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237
+#: part/bom.py:265 stock/templates/stock/item_base.html:397
#: templates/js/translated/company.js:337
#: templates/js/translated/company.js:774 templates/js/translated/order.js:823
-#: templates/js/translated/part.js:215 templates/js/translated/part.js:857
+#: templates/js/translated/part.js:215 templates/js/translated/part.js:863
#: templates/js/translated/table_filters.js:393
msgid "Supplier"
msgstr "Zulieferer"
@@ -2450,8 +2539,8 @@ msgid "Select supplier"
msgstr "Zulieferer auswählen"
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:1025
-#: templates/js/translated/part.js:226 templates/js/translated/part.js:875
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1025
+#: templates/js/translated/part.js:226 templates/js/translated/part.js:881
msgid "SKU"
msgstr "SKU (Lagerbestandseinheit)"
@@ -2472,22 +2561,22 @@ msgid "Supplier part description"
msgstr "Zuliefererbeschreibung des Teils"
#: company/models.py:576 company/templates/company/supplier_part.html:119
-#: part/models.py:2641 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2648 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr "Notiz"
-#: company/models.py:580 part/models.py:1779
+#: company/models.py:580 part/models.py:1781
msgid "base cost"
msgstr "Basiskosten"
-#: company/models.py:580 part/models.py:1779
+#: company/models.py:580 part/models.py:1781
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Mindestpreis"
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:493 stock/templates/stock/item_base.html:338
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1791
+#: stock/models.py:495 stock/templates/stock/item_base.html:338
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1799
msgid "Packaging"
msgstr "Verpackungen"
@@ -2495,7 +2584,7 @@ msgstr "Verpackungen"
msgid "Part packaging"
msgstr "Teile-Verpackungen"
-#: company/models.py:584 part/models.py:1781
+#: company/models.py:584 part/models.py:1783
msgid "multiple"
msgstr "Vielfache"
@@ -2554,12 +2643,12 @@ msgstr "Neues Bild hochladen"
msgid "Download image from URL"
msgstr "Bild von URL herunterladen"
-#: company/templates/company/company_base.html:83 order/models.py:547
-#: order/templates/order/sales_order_base.html:115 stock/models.py:512
-#: stock/models.py:513 stock/serializers.py:625
+#: company/templates/company/company_base.html:83 order/models.py:552
+#: order/templates/order/sales_order_base.html:115 stock/models.py:514
+#: stock/models.py:515 stock/serializers.py:626
#: stock/templates/stock/item_base.html:290
#: templates/js/translated/company.js:329 templates/js/translated/order.js:1240
-#: templates/js/translated/stock.js:2452
+#: templates/js/translated/stock.js:2610
#: templates/js/translated/table_filters.js:397
msgid "Customer"
msgstr "Kunde"
@@ -2590,7 +2679,7 @@ msgstr "Neues Zuliefererteil anlegen"
#: company/templates/company/detail.html:20
#: company/templates/company/manufacturer_part.html:118
-#: part/templates/part/detail.html:336
+#: part/templates/part/detail.html:353
msgid "New Supplier Part"
msgstr "Neues Zuliefererteil"
@@ -2598,8 +2687,8 @@ msgstr "Neues Zuliefererteil"
#: company/templates/company/detail.html:79
#: company/templates/company/manufacturer_part.html:127
#: company/templates/company/manufacturer_part.html:156
-#: part/templates/part/category.html:171 part/templates/part/detail.html:345
-#: part/templates/part/detail.html:374
+#: part/templates/part/category.html:171 part/templates/part/detail.html:362
+#: part/templates/part/detail.html:391
msgid "Options"
msgstr "Optionen"
@@ -2627,7 +2716,7 @@ msgstr "Herstellerteile"
msgid "Create new manufacturer part"
msgstr "Neues Herstellerteil anlegen"
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:364
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:381
msgid "New Manufacturer Part"
msgstr "Neues Herstellerteil"
@@ -2641,7 +2730,7 @@ msgstr "Zulieferer-Bestand"
#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:68 part/templates/part/part_sidebar.html:33
+#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
@@ -2663,7 +2752,7 @@ msgstr "Neue Bestellung"
#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:91 part/templates/part/part_sidebar.html:37
+#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:41
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
@@ -2691,13 +2780,13 @@ msgstr "Firmenbemerkungen"
#: company/templates/company/detail.html:384
#: company/templates/company/manufacturer_part.html:215
-#: part/templates/part/detail.html:418
+#: part/templates/part/detail.html:435
msgid "Delete Supplier Parts?"
msgstr "Zuliefererteil entfernen?"
#: company/templates/company/detail.html:385
#: company/templates/company/manufacturer_part.html:216
-#: part/templates/part/detail.html:419
+#: part/templates/part/detail.html:436
msgid "All selected supplier parts will be deleted"
msgstr "Alle ausgewählten Zulieferteile werden gelöscht"
@@ -2714,7 +2803,7 @@ msgstr "Hersteller"
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:34
#: company/templates/company/supplier_part.html:159
-#: part/templates/part/detail.html:71 part/templates/part/part_base.html:76
+#: part/templates/part/detail.html:88 part/templates/part/part_base.html:76
msgid "Order part"
msgstr "Teil bestellen"
@@ -2735,34 +2824,34 @@ msgstr "Internes Teil"
#: company/templates/company/manufacturer_part.html:114
#: company/templates/company/supplier_part.html:15 company/views.py:49
-#: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163
+#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:163
#: templates/InvenTree/search.html:188 templates/navbar.html:45
msgid "Suppliers"
msgstr "Zulieferer"
#: company/templates/company/manufacturer_part.html:129
-#: part/templates/part/detail.html:347
+#: part/templates/part/detail.html:364
msgid "Delete supplier parts"
msgstr "Zuliefererteil entfernen"
#: company/templates/company/manufacturer_part.html:129
#: company/templates/company/manufacturer_part.html:158
#: company/templates/company/manufacturer_part.html:254
-#: part/templates/part/detail.html:347 part/templates/part/detail.html:376
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:393
#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31
-#: users/models.py:210
+#: users/models.py:212
msgid "Delete"
msgstr "Löschen"
#: company/templates/company/manufacturer_part.html:143
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:17
-#: part/templates/part/detail.html:170 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:187 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr "Parameter"
#: company/templates/company/manufacturer_part.html:147
-#: part/templates/part/detail.html:175
+#: part/templates/part/detail.html:192
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
@@ -2773,7 +2862,7 @@ msgid "Delete parameters"
msgstr "Parameter löschen"
#: company/templates/company/manufacturer_part.html:191
-#: part/templates/part/detail.html:862
+#: part/templates/part/detail.html:892
msgid "Add Parameter"
msgstr "Parameter hinzufügen"
@@ -2802,9 +2891,9 @@ msgid "Assigned Stock Items"
msgstr "Zugewiesene Lagerartikel"
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:477
+#: company/templates/company/supplier_part.html:24 stock/models.py:479
#: stock/templates/stock/item_base.html:402
-#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1748
+#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1756
msgid "Supplier Part"
msgstr "Zuliefererteil"
@@ -2830,7 +2919,7 @@ msgstr "Neuen Lagerartikel hinzufügen"
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:167
-#: templates/js/translated/stock.js:360
+#: templates/js/translated/stock.js:368
msgid "New Stock Item"
msgstr "Neuer Lagerartikel"
@@ -2840,7 +2929,7 @@ msgid "Supplier Part Orders"
msgstr "Zulieferer-Bestellungen"
#: company/templates/company/supplier_part.html:160
-#: part/templates/part/detail.html:72
+#: part/templates/part/detail.html:89
msgid "Order Part"
msgstr "Teil bestellen"
@@ -2851,7 +2940,7 @@ msgstr "Preisinformationen ansehen"
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1619
+#: part/templates/part/prices.html:271 part/views.py:1628
msgid "Add Price Break"
msgstr "Preisstaffel hinzufügen"
@@ -2859,11 +2948,11 @@ msgstr "Preisstaffel hinzufügen"
msgid "No price break information found"
msgstr "Keine Informationen zur Preisstaffel gefunden"
-#: company/templates/company/supplier_part.html:224 part/views.py:1681
+#: company/templates/company/supplier_part.html:224 part/views.py:1690
msgid "Delete Price Break"
msgstr "Preisstaffel löschen"
-#: company/templates/company/supplier_part.html:238 part/views.py:1667
+#: company/templates/company/supplier_part.html:238 part/views.py:1676
msgid "Edit Price Break"
msgstr "Preisstaffel bearbeiten"
@@ -2881,10 +2970,10 @@ msgstr "Preisstaffel löschen"
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:150
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/bom.js:328 templates/js/translated/part.js:489
-#: templates/js/translated/part.js:624 templates/js/translated/part.js:1118
-#: templates/js/translated/part.js:1279 templates/js/translated/stock.js:927
-#: templates/js/translated/stock.js:1580 templates/navbar.html:28
+#: templates/js/translated/bom.js:340 templates/js/translated/part.js:495
+#: templates/js/translated/part.js:630 templates/js/translated/part.js:1125
+#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:935
+#: templates/js/translated/stock.js:1588 templates/navbar.html:28
msgid "Stock"
msgstr "Bestand"
@@ -2907,8 +2996,8 @@ msgstr "Bepreisung"
#: stock/templates/stock/location.html:151
#: stock/templates/stock/location.html:163
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2351
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2509
+#: templates/stats.html:105 templates/stats.html:114 users/models.py:43
msgid "Stock Items"
msgstr "Lagerartikel"
@@ -2937,20 +3026,20 @@ msgstr "Firmen"
msgid "New Company"
msgstr "Neue Firma"
-#: company/views.py:129 part/views.py:584
+#: company/views.py:129 part/views.py:593
msgid "Download Image"
msgstr "Bild herunterladen"
-#: company/views.py:158 part/views.py:616
+#: company/views.py:158 part/views.py:625
msgid "Image size exceeds maximum allowable size for download"
msgstr "Bildgröße überschreitet maximal-erlaubte Größe für Downloads"
-#: company/views.py:165 part/views.py:623
+#: company/views.py:165 part/views.py:632
#, python-brace-format
msgid "Invalid response: {code}"
msgstr "Ungültige Antwort {code}"
-#: company/views.py:174 part/views.py:632
+#: company/views.py:174 part/views.py:641
msgid "Supplied URL is not a valid image file"
msgstr "Angegebene URL ist kein gültiges Bild"
@@ -3036,282 +3125,282 @@ msgstr "Bestellung als vollständig markieren"
msgid "Cancel order"
msgstr "Bestellung stornieren"
-#: order/models.py:122
+#: order/models.py:125
msgid "Order description"
msgstr "Bestellungs-Beschreibung"
-#: order/models.py:124
+#: order/models.py:127
msgid "Link to external page"
msgstr "Link auf externe Seite"
-#: order/models.py:132
+#: order/models.py:135
msgid "Created By"
msgstr "Erstellt von"
-#: order/models.py:139
+#: order/models.py:142
msgid "User or group responsible for this order"
msgstr "Nutzer oder Gruppe der/die für diesen Auftrag zuständig ist/sind"
-#: order/models.py:144
+#: order/models.py:147
msgid "Order notes"
msgstr "Bestell-Notizen"
-#: order/models.py:211 order/models.py:537
+#: order/models.py:214 order/models.py:542
msgid "Order reference"
msgstr "Bestell-Referenz"
-#: order/models.py:216 order/models.py:552
+#: order/models.py:219 order/models.py:557
msgid "Purchase order status"
msgstr "Bestellungs-Status"
-#: order/models.py:225
+#: order/models.py:228
msgid "Company from which the items are being ordered"
msgstr "Firma bei der die Teile bestellt werden"
-#: order/models.py:228 order/templates/order/order_base.html:118
+#: order/models.py:231 order/templates/order/order_base.html:118
#: templates/js/translated/order.js:832
msgid "Supplier Reference"
msgstr "Zulieferer-Referenz"
-#: order/models.py:228
+#: order/models.py:231
msgid "Supplier order reference code"
msgstr "Zulieferer Bestellreferenz"
-#: order/models.py:235
+#: order/models.py:238
msgid "received by"
msgstr "Empfangen von"
-#: order/models.py:240
+#: order/models.py:243
msgid "Issue Date"
msgstr "Aufgabedatum"
-#: order/models.py:241
+#: order/models.py:244
msgid "Date order was issued"
msgstr "Datum an dem die Bestellung aufgegeben wurde"
-#: order/models.py:246
+#: order/models.py:249
msgid "Target Delivery Date"
msgstr "Ziel-Versanddatum"
-#: order/models.py:247
+#: order/models.py:250
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr "Geplantes Lieferdatum für Auftrag."
-#: order/models.py:253
+#: order/models.py:256
msgid "Date order was completed"
msgstr "Datum an dem der Auftrag fertigstellt wurde"
-#: order/models.py:282
+#: order/models.py:285
msgid "Part supplier must match PO supplier"
msgstr "Teile-Zulieferer muss dem Zulieferer der Bestellung entsprechen"
-#: order/models.py:411
-msgid "Quantity must be an integer"
-msgstr "Anzahl muss eine Ganzzahl sein"
-
-#: order/models.py:415
+#: order/models.py:420
msgid "Quantity must be a positive number"
msgstr "Anzahl muss eine positive Zahl sein"
-#: order/models.py:548
+#: order/models.py:553
msgid "Company to which the items are being sold"
msgstr "Firma an die die Teile verkauft werden"
-#: order/models.py:554
+#: order/models.py:559
msgid "Customer Reference "
msgstr "Kundenreferenz"
-#: order/models.py:554
+#: order/models.py:559
msgid "Customer order reference code"
msgstr "Bestellreferenz"
-#: order/models.py:559
+#: order/models.py:564
msgid "Target date for order completion. Order will be overdue after this date."
msgstr "Zieldatum für Auftrags-Fertigstellung."
-#: order/models.py:562 order/models.py:1028
+#: order/models.py:567 order/models.py:1048
#: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429
msgid "Shipment Date"
msgstr "Versanddatum"
-#: order/models.py:569
+#: order/models.py:574
msgid "shipped by"
msgstr "Versand von"
-#: order/models.py:635
+#: order/models.py:640
msgid "Order cannot be completed as no parts have been assigned"
msgstr "Auftrag kann nicht abgeschlossen werden, da keine Teile zugewiesen wurden"
-#: order/models.py:639
+#: order/models.py:644
msgid "Only a pending order can be marked as complete"
msgstr "Nur ein ausstehender Auftrag kann als abgeschlossen markiert werden"
-#: order/models.py:642
+#: order/models.py:647
msgid "Order cannot be completed as there are incomplete shipments"
msgstr "Auftrag kann nicht abgeschlossen werden, da unvollständige Sendungen vorhanden sind"
-#: order/models.py:645
+#: order/models.py:650
msgid "Order cannot be completed as there are incomplete line items"
msgstr "Auftrag kann nicht abgeschlossen werden, da es unvollständige Positionen gibt"
-#: order/models.py:797
+#: order/models.py:806
msgid "Item quantity"
msgstr "Anzahl"
-#: order/models.py:803
+#: order/models.py:812
msgid "Line item reference"
msgstr "Position - Referenz"
-#: order/models.py:805
+#: order/models.py:814
msgid "Line item notes"
msgstr "Position - Notizen"
-#: order/models.py:835 order/models.py:926 order/models.py:1022
-#: templates/js/translated/order.js:1820
+#: order/models.py:842
+msgid "Supplier part must match supplier"
+msgstr ""
+
+#: order/models.py:855 order/models.py:946 order/models.py:1042
+#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2271
msgid "Order"
msgstr "Bestellung"
-#: order/models.py:836 order/templates/order/order_base.html:9
+#: order/models.py:856 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:352
-#: templates/js/translated/order.js:801 templates/js/translated/part.js:832
-#: templates/js/translated/stock.js:1725 templates/js/translated/stock.js:2433
+#: templates/js/translated/order.js:801 templates/js/translated/part.js:838
+#: templates/js/translated/stock.js:1733 templates/js/translated/stock.js:2591
msgid "Purchase Order"
msgstr "Bestellung"
-#: order/models.py:857
+#: order/models.py:877
msgid "Supplier part"
msgstr "Zuliefererteil"
-#: order/models.py:864 order/templates/order/order_base.html:163
+#: order/models.py:884 order/templates/order/order_base.html:163
#: templates/js/translated/order.js:589 templates/js/translated/order.js:1118
-#: templates/js/translated/part.js:904 templates/js/translated/part.js:930
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:937
#: templates/js/translated/table_filters.js:317
msgid "Received"
msgstr "Empfangen"
-#: order/models.py:865
+#: order/models.py:885
msgid "Number of items received"
msgstr "Empfangene Objekt-Anzahl"
-#: order/models.py:872 part/templates/part/prices.html:176 stock/models.py:606
+#: order/models.py:892 part/templates/part/prices.html:176 stock/models.py:608
#: stock/serializers.py:170 stock/templates/stock/item_base.html:359
-#: templates/js/translated/stock.js:1779
+#: templates/js/translated/stock.js:1787
msgid "Purchase Price"
msgstr "Preis"
-#: order/models.py:873
+#: order/models.py:893
msgid "Unit purchase price"
msgstr "Preis pro Einheit"
-#: order/models.py:881
+#: order/models.py:901
msgid "Where does the Purchaser want this item to be stored?"
msgstr "Wo möchte der Käufer diesen Artikel gelagert haben?"
-#: order/models.py:936 part/templates/part/part_pricing.html:112
+#: order/models.py:956 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr "Verkaufspreis"
-#: order/models.py:937
+#: order/models.py:957
msgid "Unit sale price"
msgstr "Stückverkaufspreis"
-#: order/models.py:942
+#: order/models.py:962
msgid "Shipped quantity"
msgstr "Versendete Menge"
-#: order/models.py:1029
+#: order/models.py:1049
msgid "Date of shipment"
msgstr "Versanddatum"
-#: order/models.py:1036
+#: order/models.py:1056
msgid "Checked By"
msgstr "Kontrolliert von"
-#: order/models.py:1037
+#: order/models.py:1057
msgid "User who checked this shipment"
msgstr "Benutzer, der diese Sendung kontrolliert hat"
-#: order/models.py:1045
+#: order/models.py:1065
msgid "Shipment number"
msgstr "Sendungsnummer"
-#: order/models.py:1052
+#: order/models.py:1072
msgid "Shipment notes"
msgstr "Versandhinweise"
-#: order/models.py:1059
+#: order/models.py:1079
msgid "Tracking Number"
msgstr "Sendungsverfolgungsnummer"
-#: order/models.py:1060
+#: order/models.py:1080
msgid "Shipment tracking information"
msgstr "Informationen zur Sendungsverfolgung"
-#: order/models.py:1070
+#: order/models.py:1090
msgid "Shipment has already been sent"
msgstr "Sendung wurde bereits versandt"
-#: order/models.py:1073
+#: order/models.py:1093
msgid "Shipment has no allocated stock items"
msgstr "Sendung hat keine zugewiesene Lagerartikel"
-#: order/models.py:1149 order/models.py:1151
+#: order/models.py:1171 order/models.py:1173
msgid "Stock item has not been assigned"
msgstr "Lagerartikel wurde nicht zugewiesen"
-#: order/models.py:1155
+#: order/models.py:1177
msgid "Cannot allocate stock item to a line with a different part"
msgstr "Kann Lagerartikel keiner Zeile mit einem anderen Teil hinzufügen"
-#: order/models.py:1157
+#: order/models.py:1179
msgid "Cannot allocate stock to a line without a part"
msgstr "Kann Lagerartikel keiner Zeile ohne Teil hinzufügen"
-#: order/models.py:1160
+#: order/models.py:1182
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Die zugeordnete Anzahl darf nicht die verfügbare Anzahl überschreiten"
-#: order/models.py:1164
+#: order/models.py:1186
msgid "StockItem is over-allocated"
msgstr "Zu viele Lagerartikel zugewiesen"
-#: order/models.py:1170 order/serializers.py:734
+#: order/models.py:1192 order/serializers.py:740
msgid "Quantity must be 1 for serialized stock item"
msgstr "Anzahl für serialisierte Lagerartikel muss 1 sein"
-#: order/models.py:1173
+#: order/models.py:1195
msgid "Sales order does not match shipment"
msgstr "Auftrag gehört nicht zu Sendung"
-#: order/models.py:1174
+#: order/models.py:1196
msgid "Shipment does not match sales order"
msgstr "Sendung gehört nicht zu Auftrag"
-#: order/models.py:1182
+#: order/models.py:1204
msgid "Line"
msgstr "Position"
-#: order/models.py:1190 order/serializers.py:825 order/serializers.py:953
-#: templates/js/translated/model_renderers.js:251
+#: order/models.py:1212 order/serializers.py:831 order/serializers.py:959
+#: templates/js/translated/model_renderers.js:285
msgid "Shipment"
msgstr "Sendung"
-#: order/models.py:1191
+#: order/models.py:1213
msgid "Sales order shipment reference"
msgstr "Sendungsnummer-Referenz"
-#: order/models.py:1203
+#: order/models.py:1225
msgid "Item"
msgstr "Position"
-#: order/models.py:1204
+#: order/models.py:1226
msgid "Select stock item to allocate"
msgstr "Lagerartikel für Zuordnung auswählen"
-#: order/models.py:1207
+#: order/models.py:1229
msgid "Enter stock allocation quantity"
msgstr "Anzahl für Bestandszuordnung eingeben"
@@ -3319,7 +3408,7 @@ msgstr "Anzahl für Bestandszuordnung eingeben"
msgid "Purchase price currency"
msgstr "Kaufpreiswährung"
-#: order/serializers.py:211 order/serializers.py:790
+#: order/serializers.py:211 order/serializers.py:796
msgid "Line Item"
msgstr "Position"
@@ -3355,39 +3444,39 @@ msgstr "Ziel-Lagerort muss angegeben werden"
msgid "Supplied barcode values must be unique"
msgstr "Barcode muss eindeutig sein"
-#: order/serializers.py:581
+#: order/serializers.py:587
msgid "Sale price currency"
msgstr "Verkaufspreis-Währung"
-#: order/serializers.py:649
+#: order/serializers.py:655
msgid "No shipment details provided"
msgstr "Keine Sendungsdetails angegeben"
-#: order/serializers.py:699 order/serializers.py:802
+#: order/serializers.py:705 order/serializers.py:808
msgid "Line item is not associated with this order"
msgstr "Position ist nicht diesem Auftrag zugeordnet"
-#: order/serializers.py:721
+#: order/serializers.py:727
msgid "Quantity must be positive"
msgstr "Anzahl muss positiv sein"
-#: order/serializers.py:815
+#: order/serializers.py:821
msgid "Enter serial numbers to allocate"
msgstr "Seriennummern zum Zuweisen eingeben"
-#: order/serializers.py:839 order/serializers.py:964
+#: order/serializers.py:845 order/serializers.py:970
msgid "Shipment has already been shipped"
msgstr "Sendung wurde bereits versandt"
-#: order/serializers.py:842 order/serializers.py:967
+#: order/serializers.py:848 order/serializers.py:973
msgid "Shipment is not associated with this order"
msgstr "Sendung ist nicht diesem Auftrag zugeordnet"
-#: order/serializers.py:894
+#: order/serializers.py:900
msgid "No match found for the following serial numbers"
msgstr "Folgende Serienummern konnten nicht gefunden werden"
-#: order/serializers.py:904
+#: order/serializers.py:910
msgid "The following serial numbers are already allocated"
msgstr "Folgende Seriennummern sind bereits zugewiesen"
@@ -3441,6 +3530,7 @@ msgstr "Bestellungsbeschreibung"
#: order/templates/order/order_base.html:94
#: order/templates/order/sales_order_base.html:89
+#: templates/js/translated/stock.js:2327
msgid "Order Status"
msgstr "Bestellstatus"
@@ -3538,7 +3628,7 @@ msgstr "Auswahl duplizieren"
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/build.js:300 templates/js/translated/build.js:1311
#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488
-#: templates/js/translated/stock.js:593 templates/js/translated/stock.js:761
+#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769
msgid "Remove row"
msgstr "Zeile entfernen"
@@ -3729,7 +3819,7 @@ msgid "Pending Shipments"
msgstr "Ausstehende Sendungen"
#: order/templates/order/sales_order_detail.html:48
-#: templates/js/translated/bom.js:720 templates/js/translated/build.js:1243
+#: templates/js/translated/bom.js:732 templates/js/translated/build.js:1243
msgid "Actions"
msgstr "Aktionen"
@@ -3814,7 +3904,7 @@ msgstr ""
#: part/api.py:505
msgid "This option must be selected"
-msgstr ""
+msgstr "Diese Option muss ausgewählt werden"
#: part/api.py:847
msgid "Must be greater than zero"
@@ -3832,447 +3922,448 @@ msgstr "Standort für anfänglichen Bestand angeben"
msgid "This field is required"
msgstr "Dieses Feld ist erforderlich"
-#: part/bom.py:125 part/models.py:81 part/models.py:847
+#: part/bom.py:125 part/models.py:83 part/models.py:849
#: part/templates/part/category.html:108 part/templates/part/part_base.html:338
msgid "Default Location"
msgstr "Standard-Lagerort"
-#: part/bom.py:126 part/templates/part/part_base.html:185
+#: part/bom.py:126 templates/email/low_stock_notification.html:17
+msgid "Total Stock"
+msgstr "Gesamtbestand"
+
+#: part/bom.py:127 part/templates/part/part_base.html:185
msgid "Available Stock"
msgstr "Verfügbarer Bestand"
-#: part/forms.py:85
+#: part/bom.py:128 part/templates/part/part_base.html:203
+#: templates/js/translated/part.js:1301
+msgid "On Order"
+msgstr "Bestellt"
+
+#: part/forms.py:84
msgid "Select part category"
msgstr "Teil-Kategorie wählen"
-#: part/forms.py:122
+#: part/forms.py:121
msgid "Add parameter template to same level categories"
msgstr "Parameter-Vorlage zu Kategorien dieser Ebene hinzufügen"
-#: part/forms.py:126
+#: part/forms.py:125
msgid "Add parameter template to all categories"
msgstr "Parameter-Vorlage zu allen Kategorien hinzufügen"
-#: part/forms.py:146
+#: part/forms.py:145
msgid "Input quantity for price calculation"
msgstr "Menge für die Preisberechnung"
-#: part/models.py:82
+#: part/models.py:84
msgid "Default location for parts in this category"
msgstr "Standard-Lagerort für Teile dieser Kategorie"
-#: part/models.py:85
+#: part/models.py:87
msgid "Default keywords"
msgstr "Standard Stichwörter"
-#: part/models.py:85
+#: part/models.py:87
msgid "Default keywords for parts in this category"
msgstr "Standard-Stichworte für Teile dieser Kategorie"
-#: part/models.py:95 part/models.py:2526 part/templates/part/category.html:15
+#: part/models.py:97 part/models.py:2533 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Teil-Kategorie"
-#: part/models.py:96 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/stats.html:84
+#: part/models.py:98 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/stats.html:96
#: users/models.py:40
msgid "Part Categories"
msgstr "Teil-Kategorien"
-#: part/models.py:358 part/templates/part/cat_link.html:3
+#: part/models.py:360 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:17 part/templates/part/category.html:133
#: part/templates/part/category.html:153
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:37
-#: templates/js/translated/part.js:1656 templates/navbar.html:21
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+#: templates/js/translated/part.js:1663 templates/navbar.html:21
+#: templates/stats.html:92 templates/stats.html:101 users/models.py:41
msgid "Parts"
msgstr "Teile"
-#: part/models.py:450
+#: part/models.py:452
msgid "Invalid choice for parent part"
msgstr "Ungültige Auswahl für übergeordnetes Teil"
-#: part/models.py:500 part/models.py:512
+#: part/models.py:502 part/models.py:514
#, 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:642
+#: part/models.py:644
msgid "Next available serial numbers are"
msgstr "Nächste verfügbare Seriennummern wären"
-#: part/models.py:646
+#: part/models.py:648
msgid "Next available serial number is"
msgstr "Nächste verfügbare Seriennummer ist"
-#: part/models.py:651
+#: part/models.py:653
msgid "Most recent serial number is"
msgstr "Die neuste Seriennummer ist"
-#: part/models.py:746
+#: part/models.py:748
msgid "Duplicate IPN not allowed in part settings"
msgstr "Doppelte IPN in den Teil-Einstellungen nicht erlaubt"
-#: part/models.py:771
+#: part/models.py:773
msgid "Part name"
msgstr "Name des Teils"
-#: part/models.py:778
+#: part/models.py:780
msgid "Is Template"
msgstr "Ist eine Vorlage"
-#: part/models.py:779
+#: part/models.py:781
msgid "Is this part a template part?"
msgstr "Ist dieses Teil eine Vorlage?"
-#: part/models.py:789
+#: part/models.py:791
msgid "Is this part a variant of another part?"
msgstr "Ist dieses Teil eine Variante eines anderen Teils?"
-#: part/models.py:790
+#: part/models.py:792
msgid "Variant Of"
msgstr "Variante von"
-#: part/models.py:796
+#: part/models.py:798
msgid "Part description"
msgstr "Beschreibung des Teils"
-#: part/models.py:801 part/templates/part/category.html:86
+#: part/models.py:803 part/templates/part/category.html:86
#: part/templates/part/part_base.html:302
msgid "Keywords"
msgstr "Schlüsselwörter"
-#: part/models.py:802
+#: part/models.py:804
msgid "Part keywords to improve visibility in search results"
msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern"
-#: part/models.py:809 part/models.py:2276 part/models.py:2525
+#: part/models.py:811 part/models.py:2283 part/models.py:2532
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:183
-#: templates/js/translated/part.js:1261
+#: templates/InvenTree/settings/settings.html:186
+#: templates/js/translated/part.js:1268
msgid "Category"
msgstr "Kategorie"
-#: part/models.py:810
+#: part/models.py:812
msgid "Part category"
msgstr "Teile-Kategorie"
-#: part/models.py:815 part/templates/part/part_base.html:274
-#: templates/js/translated/part.js:612 templates/js/translated/part.js:1214
-#: templates/js/translated/stock.js:1552
+#: part/models.py:817 part/templates/part/part_base.html:274
+#: templates/js/translated/part.js:618 templates/js/translated/part.js:1221
+#: templates/js/translated/stock.js:1560
msgid "IPN"
msgstr "IPN (Interne Produktnummer)"
-#: part/models.py:816
+#: part/models.py:818
msgid "Internal Part Number"
msgstr "Interne Teilenummer"
-#: part/models.py:822
+#: part/models.py:824
msgid "Part revision or version number"
msgstr "Revisions- oder Versionsnummer"
-#: part/models.py:823 part/templates/part/part_base.html:281
-#: report/models.py:200 templates/js/translated/part.js:616
+#: part/models.py:825 part/templates/part/part_base.html:281
+#: report/models.py:200 templates/js/translated/part.js:622
msgid "Revision"
msgstr "Revision"
-#: part/models.py:845
+#: part/models.py:847
msgid "Where is this item normally stored?"
msgstr "Wo wird dieses Teil normalerweise gelagert?"
-#: part/models.py:892 part/templates/part/part_base.html:347
+#: part/models.py:894 part/templates/part/part_base.html:347
msgid "Default Supplier"
msgstr "Standard Zulieferer"
-#: part/models.py:893
+#: part/models.py:895
msgid "Default supplier part"
msgstr "Standard Zuliefererteil"
-#: part/models.py:900
+#: part/models.py:902
msgid "Default Expiry"
msgstr "Standard Ablaufzeit"
-#: part/models.py:901
+#: part/models.py:903
msgid "Expiry time (in days) for stock items of this part"
msgstr "Ablauf-Zeit (in Tagen) für Bestand dieses Teils"
-#: part/models.py:906 part/templates/part/part_base.html:196
+#: part/models.py:908 part/templates/part/part_base.html:196
msgid "Minimum Stock"
msgstr "Minimaler Bestand"
-#: part/models.py:907
+#: part/models.py:909
msgid "Minimum allowed stock level"
msgstr "Minimal zulässiger Bestand"
-#: part/models.py:914
+#: part/models.py:916
msgid "Stock keeping units for this part"
msgstr "Stock Keeping Units (SKU) für dieses Teil"
-#: part/models.py:920
+#: part/models.py:922
msgid "Can this part be built from other parts?"
msgstr "Kann dieses Teil aus anderen Teilen angefertigt werden?"
-#: part/models.py:926
+#: part/models.py:928
msgid "Can this part be used to build other parts?"
msgstr "Kann dieses Teil zum Bauauftrag von anderen genutzt werden?"
-#: part/models.py:932
+#: part/models.py:934
msgid "Does this part have tracking for unique items?"
msgstr "Hat dieses Teil Tracking für einzelne Objekte?"
-#: part/models.py:937
+#: part/models.py:939
msgid "Can this part be purchased from external suppliers?"
msgstr "Kann dieses Teil von externen Zulieferern gekauft werden?"
-#: part/models.py:942
+#: part/models.py:944
msgid "Can this part be sold to customers?"
msgstr "Kann dieses Teil an Kunden verkauft werden?"
-#: part/models.py:946 plugin/models.py:46
-#: templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:96
-#: templates/js/translated/table_filters.js:295
-#: templates/js/translated/table_filters.js:417
-msgid "Active"
-msgstr "Aktiv"
-
-#: part/models.py:947
+#: part/models.py:949
msgid "Is this part active?"
msgstr "Ist dieses Teil aktiv?"
-#: part/models.py:952
+#: part/models.py:954
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:957
+#: part/models.py:959
msgid "Part notes - supports Markdown formatting"
msgstr "Bemerkungen - unterstüzt Markdown-Formatierung"
-#: part/models.py:960
+#: part/models.py:962
msgid "BOM checksum"
msgstr "Prüfsumme der Stückliste"
-#: part/models.py:960
+#: part/models.py:962
msgid "Stored BOM checksum"
msgstr "Prüfsumme der Stückliste gespeichert"
-#: part/models.py:963
+#: part/models.py:965
msgid "BOM checked by"
msgstr "Stückliste kontrolliert von"
-#: part/models.py:965
+#: part/models.py:967
msgid "BOM checked date"
msgstr "BOM Kontrolldatum"
-#: part/models.py:969
+#: part/models.py:971
msgid "Creation User"
msgstr "Erstellungs-Nutzer"
-#: part/models.py:1781
+#: part/models.py:1783
msgid "Sell multiple"
msgstr "Mehrere verkaufen"
-#: part/models.py:2326
+#: part/models.py:2333
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:2343
+#: part/models.py:2350
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:2363 templates/js/translated/part.js:1707
-#: templates/js/translated/stock.js:1276
+#: part/models.py:2370 templates/js/translated/part.js:1714
+#: templates/js/translated/stock.js:1284
msgid "Test Name"
msgstr "Test-Name"
-#: part/models.py:2364
+#: part/models.py:2371
msgid "Enter a name for the test"
msgstr "Namen für diesen Test eingeben"
-#: part/models.py:2369
+#: part/models.py:2376
msgid "Test Description"
msgstr "Test-Beschreibung"
-#: part/models.py:2370
+#: part/models.py:2377
msgid "Enter description for this test"
msgstr "Beschreibung für diesen Test eingeben"
-#: part/models.py:2375 templates/js/translated/part.js:1716
+#: part/models.py:2382 templates/js/translated/part.js:1723
#: templates/js/translated/table_filters.js:281
msgid "Required"
msgstr "Benötigt"
-#: part/models.py:2376
+#: part/models.py:2383
msgid "Is this test required to pass?"
msgstr "Muss dieser Test erfolgreich sein?"
-#: part/models.py:2381 templates/js/translated/part.js:1724
+#: part/models.py:2388 templates/js/translated/part.js:1731
msgid "Requires Value"
msgstr "Erfordert Wert"
-#: part/models.py:2382
+#: part/models.py:2389
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:2387 templates/js/translated/part.js:1731
+#: part/models.py:2394 templates/js/translated/part.js:1738
msgid "Requires Attachment"
msgstr "Anhang muss eingegeben werden"
-#: part/models.py:2388
+#: part/models.py:2395
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:2399
+#: part/models.py:2406
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr "Ungültiges Zeichen im Vorlagename ({c})"
-#: part/models.py:2435
+#: part/models.py:2442
msgid "Parameter template name must be unique"
msgstr "Vorlagen-Name des Parameters muss eindeutig sein"
-#: part/models.py:2443
+#: part/models.py:2450
msgid "Parameter Name"
msgstr "Name des Parameters"
-#: part/models.py:2450
+#: part/models.py:2457
msgid "Parameter Units"
msgstr "Einheit des Parameters"
-#: part/models.py:2480
+#: part/models.py:2487
msgid "Parent Part"
msgstr "Ausgangsteil"
-#: part/models.py:2482 part/models.py:2531 part/models.py:2532
-#: templates/InvenTree/settings/settings.html:178
+#: part/models.py:2489 part/models.py:2538 part/models.py:2539
+#: templates/InvenTree/settings/settings.html:181
msgid "Parameter Template"
msgstr "Parameter Vorlage"
-#: part/models.py:2484
+#: part/models.py:2491
msgid "Data"
msgstr "Wert"
-#: part/models.py:2484
+#: part/models.py:2491
msgid "Parameter Value"
msgstr "Parameter Wert"
-#: part/models.py:2536 templates/InvenTree/settings/settings.html:187
+#: part/models.py:2543 templates/InvenTree/settings/settings.html:190
msgid "Default Value"
msgstr "Standard-Wert"
-#: part/models.py:2537
+#: part/models.py:2544
msgid "Default Parameter Value"
msgstr "Standard Parameter Wert"
-#: part/models.py:2614
+#: part/models.py:2621
msgid "Select parent part"
msgstr "Ausgangsteil auswählen"
-#: part/models.py:2622
+#: part/models.py:2629
msgid "Sub part"
msgstr "Untergeordnetes Teil"
-#: part/models.py:2623
+#: part/models.py:2630
msgid "Select part to be used in BOM"
msgstr "Teil für die Nutzung in der Stückliste auswählen"
-#: part/models.py:2629
+#: part/models.py:2636
msgid "BOM quantity for this BOM item"
msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil"
-#: part/models.py:2631 templates/js/translated/bom.js:566
-#: templates/js/translated/bom.js:640
+#: part/models.py:2638 templates/js/translated/bom.js:578
+#: templates/js/translated/bom.js:652
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr "Optional"
-#: part/models.py:2631
+#: part/models.py:2638
msgid "This BOM item is optional"
msgstr "Diese Stücklisten-Position ist optional"
-#: part/models.py:2634
+#: part/models.py:2641
msgid "Overage"
msgstr "Überschuss"
-#: part/models.py:2635
+#: part/models.py:2642
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr "Geschätzter Ausschuss (absolut oder prozentual)"
-#: part/models.py:2638
+#: part/models.py:2645
msgid "BOM item reference"
msgstr "Referenz der Postion auf der Stückliste"
-#: part/models.py:2641
+#: part/models.py:2648
msgid "BOM item notes"
msgstr "Notizen zur Stücklisten-Position"
-#: part/models.py:2643
+#: part/models.py:2650
msgid "Checksum"
msgstr "Prüfsumme"
-#: part/models.py:2643
+#: part/models.py:2650
msgid "BOM line checksum"
msgstr "Prüfsumme der Stückliste"
-#: part/models.py:2647 templates/js/translated/bom.js:657
+#: part/models.py:2654 templates/js/translated/bom.js:669
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr "Geerbt"
-#: part/models.py:2648
+#: part/models.py:2655
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:2653 templates/js/translated/bom.js:649
+#: part/models.py:2660 templates/js/translated/bom.js:661
msgid "Allow Variants"
msgstr "Varianten zulassen"
-#: part/models.py:2654
+#: part/models.py:2661
msgid "Stock items for variant parts can be used for this BOM item"
msgstr "Bestand von Varianten kann für diese Stücklisten-Position verwendet werden"
-#: part/models.py:2739 stock/models.py:355
+#: part/models.py:2746 stock/models.py:357
msgid "Quantity must be integer value for trackable parts"
msgstr "Menge muss eine Ganzzahl sein"
-#: part/models.py:2748 part/models.py:2750
+#: part/models.py:2755 part/models.py:2757
msgid "Sub part must be specified"
msgstr "Zuliefererteil muss festgelegt sein"
-#: part/models.py:2879
+#: part/models.py:2886
msgid "BOM Item Substitute"
msgstr "Stücklisten Ersatzteile"
-#: part/models.py:2901
+#: part/models.py:2908
msgid "Substitute part cannot be the same as the master part"
msgstr "Ersatzteil kann nicht identisch mit dem Hauptteil sein"
-#: part/models.py:2913
+#: part/models.py:2920
msgid "Parent BOM item"
msgstr "Übergeordnete Stücklisten Position"
-#: part/models.py:2921
+#: part/models.py:2928
msgid "Substitute part"
msgstr "Ersatzteil"
-#: part/models.py:2932
+#: part/models.py:2939
msgid "Part 1"
msgstr "Teil 1"
-#: part/models.py:2936
+#: part/models.py:2943
msgid "Part 2"
msgstr "Teil 2"
-#: part/models.py:2936
+#: part/models.py:2943
msgid "Select Related Part"
msgstr "verknüpftes Teil auswählen"
-#: part/models.py:2968
+#: part/models.py:2975
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?"
@@ -4282,7 +4373,7 @@ msgstr ""
#: part/serializers.py:670
msgid "Remove Existing Data"
-msgstr ""
+msgstr "Bestehende Daten entfernen"
#: part/serializers.py:671
msgid "Remove existing BOM items before copying"
@@ -4290,7 +4381,7 @@ msgstr ""
#: part/serializers.py:676
msgid "Include Inherited"
-msgstr ""
+msgstr "Vererbtes einschließen"
#: part/serializers.py:677
msgid "Include BOM items which are inherited from templated parts"
@@ -4298,11 +4389,11 @@ msgstr ""
#: part/serializers.py:682
msgid "Skip Invalid Rows"
-msgstr ""
+msgstr "Ungültige Zeilen überspringen"
#: part/serializers.py:683
msgid "Enable this option to skip invalid rows"
-msgstr ""
+msgstr "Aktiviere diese Option, um ungültige Zeilen zu überspringen"
#: part/tasks.py:53
msgid "Low stock notification"
@@ -4327,7 +4418,7 @@ msgstr "Die Stückliste für %(part)s wurde zuletzt von %(checker)s am
msgid "The BOM for %(part)s has not been validated."
msgstr "Die Stückliste für %(part)s wurde noch nicht kontrolliert."
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:253
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:270
msgid "BOM actions"
msgstr "Stücklisten-Aktionen"
@@ -4499,7 +4590,7 @@ msgstr "Wenn diese Kat. gelöscht wird, werden diese Teile in die oberste Kat. v
msgid "Import Parts"
msgstr "Teile importieren"
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:348
msgid "Duplicate Part"
msgstr "Teil duplizieren"
@@ -4533,145 +4624,149 @@ msgid "Showing stock for all variants of %(full_name)s"
msgstr "Bestand aller Varianten von %(full_name)s"
#: part/templates/part/detail.html:43
+msgid "Part Stock Allocations"
+msgstr ""
+
+#: part/templates/part/detail.html:60
msgid "Part Test Templates"
msgstr "Teil Test-Vorlagen"
-#: part/templates/part/detail.html:48
+#: part/templates/part/detail.html:65
msgid "Add Test Template"
msgstr "Test Vorlage hinzufügen"
-#: part/templates/part/detail.html:105
+#: part/templates/part/detail.html:122
msgid "Sales Order Allocations"
msgstr "Verkaufsauftragszuweisungen"
-#: part/templates/part/detail.html:142
+#: part/templates/part/detail.html:159
msgid "Part Variants"
msgstr "Teil Varianten"
-#: part/templates/part/detail.html:146
+#: part/templates/part/detail.html:163
msgid "Create new variant"
msgstr "Neue Variante anlegen"
-#: part/templates/part/detail.html:147
+#: part/templates/part/detail.html:164
msgid "New Variant"
msgstr "neue Variante anlegen"
-#: part/templates/part/detail.html:174
+#: part/templates/part/detail.html:191
msgid "Add new parameter"
msgstr "Parameter hinzufügen"
-#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:45
+#: part/templates/part/detail.html:228 part/templates/part/part_sidebar.html:49
msgid "Related Parts"
msgstr "Verknüpfte Teile"
-#: part/templates/part/detail.html:215 part/templates/part/detail.html:216
+#: part/templates/part/detail.html:232 part/templates/part/detail.html:233
msgid "Add Related"
msgstr "Verknüpftes Teil hinzufügen"
-#: part/templates/part/detail.html:236 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:253 part/templates/part/part_sidebar.html:17
msgid "Bill of Materials"
msgstr "Stückliste"
-#: part/templates/part/detail.html:241
+#: part/templates/part/detail.html:258
msgid "Export actions"
msgstr "Export-Aktionen"
-#: part/templates/part/detail.html:245 templates/js/translated/bom.js:70
+#: part/templates/part/detail.html:262 templates/js/translated/bom.js:70
msgid "Export BOM"
msgstr "Stückliste exportieren"
-#: part/templates/part/detail.html:247
+#: part/templates/part/detail.html:264
msgid "Print BOM Report"
msgstr "Stücklisten-Bericht drucken"
-#: part/templates/part/detail.html:257
+#: part/templates/part/detail.html:274
msgid "Upload BOM"
msgstr "Stückliste hochladen"
-#: part/templates/part/detail.html:259 templates/js/translated/part.js:272
+#: part/templates/part/detail.html:276 templates/js/translated/part.js:272
msgid "Copy BOM"
msgstr "Stückliste kopieren"
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:278
msgid "Validate BOM"
msgstr "Stückliste überprüfen"
-#: part/templates/part/detail.html:266
+#: part/templates/part/detail.html:283
msgid "New BOM Item"
msgstr "Neue Stücklisten-Position"
-#: part/templates/part/detail.html:267
+#: part/templates/part/detail.html:284
msgid "Add BOM Item"
msgstr "Stücklisten-Position hinzufügen"
-#: part/templates/part/detail.html:280
+#: part/templates/part/detail.html:297
msgid "Assemblies"
msgstr "Baugruppen"
-#: part/templates/part/detail.html:297
+#: part/templates/part/detail.html:314
msgid "Part Builds"
msgstr "Gefertigte Teile"
-#: part/templates/part/detail.html:322
+#: part/templates/part/detail.html:339
msgid "Build Order Allocations"
msgstr "Bauauftragszuweisungen"
-#: part/templates/part/detail.html:332
+#: part/templates/part/detail.html:349
msgid "Part Suppliers"
msgstr "Zulieferer"
-#: part/templates/part/detail.html:360
+#: part/templates/part/detail.html:377
msgid "Part Manufacturers"
msgstr "Teil-Hersteller"
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:393
msgid "Delete manufacturer parts"
msgstr "Herstellerteile löschen"
-#: part/templates/part/detail.html:558
+#: part/templates/part/detail.html:575
msgid "Delete selected BOM items?"
msgstr "Ausgewählte Stücklistenpositionen löschen?"
-#: part/templates/part/detail.html:559
+#: part/templates/part/detail.html:576
msgid "All selected BOM items will be deleted"
msgstr "Alle ausgewählte Stücklistenpositionen werden gelöscht"
-#: part/templates/part/detail.html:608
+#: part/templates/part/detail.html:625
msgid "Create BOM Item"
msgstr "Stücklisten-Position anlegen"
-#: part/templates/part/detail.html:652
+#: part/templates/part/detail.html:682
msgid "Related Part"
msgstr "verknüpftes Teil"
-#: part/templates/part/detail.html:660
+#: part/templates/part/detail.html:690
msgid "Add Related Part"
msgstr "verknüpftes Teil hinzufügen"
-#: part/templates/part/detail.html:755
+#: part/templates/part/detail.html:785
msgid "Add Test Result Template"
msgstr "Testergebnis-Vorlage hinzufügen"
-#: part/templates/part/detail.html:812
+#: part/templates/part/detail.html:842
msgid "Edit Part Notes"
msgstr "Teilenotizen bearbeiten"
-#: part/templates/part/detail.html:925
+#: part/templates/part/detail.html:955
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr "Stückpreis Einkauf - %(currency)s"
-#: part/templates/part/detail.html:937
+#: part/templates/part/detail.html:967
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr "Stückpreis Differenz - %(currency)s"
-#: part/templates/part/detail.html:949
+#: part/templates/part/detail.html:979
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr "Stückpreis Zulieferer - %(currency)s"
-#: part/templates/part/detail.html:1038
+#: part/templates/part/detail.html:1068
#, python-format
msgid "Unit Price - %(currency)s"
msgstr "Stückpreis - %(currency)s"
@@ -4786,7 +4881,7 @@ msgstr "Teil ist virtuell (kein physisches Teil)"
#: templates/js/translated/company.js:508
#: templates/js/translated/company.js:765
#: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:527 templates/js/translated/part.js:604
+#: templates/js/translated/part.js:533 templates/js/translated/part.js:610
msgid "Inactive"
msgstr "Inaktiv"
@@ -4805,10 +4900,6 @@ msgstr "Dieses Teil ist eine Variante von %(link)s"
msgid "In Stock"
msgstr "Auf Lager"
-#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1294
-msgid "On Order"
-msgstr "Bestellt"
-
#: part/templates/part/part_base.html:210 templates/InvenTree/index.html:178
msgid "Required for Build Orders"
msgstr "Für Bauaufträge benötigt"
@@ -4821,12 +4912,12 @@ msgstr "Benötigt für Aufträge"
msgid "Allocated to Orders"
msgstr "Zu Bauaufträgen zugeordnet"
-#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:678
+#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:690
msgid "Can Build"
msgstr "Herstellbar"
-#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1125
-#: templates/js/translated/part.js:1298
+#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1132
+#: templates/js/translated/part.js:1305
msgid "Building"
msgstr "Im Bau"
@@ -4878,7 +4969,7 @@ msgid "Total Cost"
msgstr "Gesamtkosten"
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:632
+#: templates/js/translated/bom.js:644
msgid "No supplier pricing available"
msgstr "Keine Zulieferer-Preise verfügbar"
@@ -4920,7 +5011,12 @@ msgstr "Varianten"
msgid "Used In"
msgstr "Benutzt in"
-#: part/templates/part/part_sidebar.html:41
+#: part/templates/part/part_sidebar.html:31
+#: stock/templates/stock/stock_sidebar.html:8
+msgid "Allocations"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:45
msgid "Test Templates"
msgstr "Testvorlagen"
@@ -4995,7 +5091,7 @@ msgstr "Verkaufspreis anzeigen"
msgid "Calculation parameters"
msgstr "Berechnungsparameter"
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:626
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:638
msgid "Supplier Cost"
msgstr "Zuliefererkosten"
@@ -5017,7 +5113,7 @@ msgstr "Für dieses Teil sind keine Bestandspreise verfügbar."
msgid "Internal Cost"
msgstr "Interne Kosten"
-#: part/templates/part/prices.html:215 part/views.py:1690
+#: part/templates/part/prices.html:215 part/views.py:1699
msgid "Add Internal Price Break"
msgstr "Interne Preisspanne hinzufügen"
@@ -5037,9 +5133,9 @@ msgstr "Keine Verkaufsgeschichte für diesen Teil verfügbar."
msgid "Set category for the following parts"
msgstr "Kategorie für Teile setzen"
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:588
-#: templates/js/translated/part.js:491 templates/js/translated/part.js:1115
-#: templates/js/translated/part.js:1302
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:600
+#: templates/js/translated/part.js:497 templates/js/translated/part.js:1122
+#: templates/js/translated/part.js:1309
msgid "No Stock"
msgstr "Kein Bestand"
@@ -5056,126 +5152,126 @@ msgstr "Neue Teilevariante anlegen"
msgid "Create a new variant of template '%(full_name)s'."
msgstr "Neue Variante von Vorlage anlegen '%(full_name)s'."
-#: part/templatetags/inventree_extras.py:116
+#: part/templatetags/inventree_extras.py:125
msgid "Unknown database"
msgstr "Unbekannte Datenbank"
-#: part/views.py:92
+#: part/views.py:93
msgid "Set Part Category"
msgstr "Teil-Kategorie auswählen"
-#: part/views.py:142
+#: part/views.py:143
#, python-brace-format
msgid "Set category for {n} parts"
msgstr "Kategorie für {n} Teile setzen"
-#: part/views.py:214
+#: part/views.py:215
msgid "Match References"
msgstr "Referenzen zuteilen"
-#: part/views.py:502
+#: part/views.py:511
msgid "None"
msgstr "Kein(e)"
-#: part/views.py:561
+#: part/views.py:570
msgid "Part QR Code"
msgstr "Teil-QR-Code"
-#: part/views.py:663
+#: part/views.py:672
msgid "Select Part Image"
msgstr "Teilbild auswählen"
-#: part/views.py:689
+#: part/views.py:698
msgid "Updated part image"
msgstr "Teilbild aktualisiert"
-#: part/views.py:692
+#: part/views.py:701
msgid "Part image not found"
msgstr "Teilbild nicht gefunden"
-#: part/views.py:766
+#: part/views.py:775
msgid "Match Parts"
msgstr "Teile zuordnen"
-#: part/views.py:1101
+#: part/views.py:1110
msgid "Export Bill of Materials"
msgstr "Stückliste exportieren"
-#: part/views.py:1150
+#: part/views.py:1159
msgid "Confirm Part Deletion"
msgstr "Löschen des Teils bestätigen"
-#: part/views.py:1157
+#: part/views.py:1166
msgid "Part was deleted"
msgstr "Teil wurde gelöscht"
-#: part/views.py:1166
+#: part/views.py:1175
msgid "Part Pricing"
msgstr "Teilbepreisung"
-#: part/views.py:1315
+#: part/views.py:1324
msgid "Create Part Parameter Template"
msgstr "Teilparametervorlage anlegen"
-#: part/views.py:1325
+#: part/views.py:1334
msgid "Edit Part Parameter Template"
msgstr "Teilparametervorlage bearbeiten"
-#: part/views.py:1332
+#: part/views.py:1341
msgid "Delete Part Parameter Template"
msgstr "Teilparametervorlage löschen"
-#: part/views.py:1391 templates/js/translated/part.js:315
+#: part/views.py:1400 templates/js/translated/part.js:315
msgid "Edit Part Category"
msgstr "Teil-Kategorie bearbeiten"
-#: part/views.py:1429
+#: part/views.py:1438
msgid "Delete Part Category"
msgstr "Teil-Kategorie löschen"
-#: part/views.py:1435
+#: part/views.py:1444
msgid "Part category was deleted"
msgstr "Teil-Kategorie wurde gelöscht"
-#: part/views.py:1444
+#: part/views.py:1453
msgid "Create Category Parameter Template"
msgstr "Kategorieparametervorlage anlegen"
-#: part/views.py:1545
+#: part/views.py:1554
msgid "Edit Category Parameter Template"
msgstr "Kategorieparametervorlage bearbeiten"
-#: part/views.py:1601
+#: part/views.py:1610
msgid "Delete Category Parameter Template"
msgstr "Kategorieparametervorlage löschen"
-#: part/views.py:1623
+#: part/views.py:1632
msgid "Added new price break"
msgstr "neue Preisstaffel hinzufügt"
-#: part/views.py:1699
+#: part/views.py:1708
msgid "Edit Internal Price Break"
msgstr "Interne Preisspanne bearbeiten"
-#: part/views.py:1707
+#: part/views.py:1716
msgid "Delete Internal Price Break"
msgstr "Interne Preisspanne löschen"
-#: plugin/integration.py:124
+#: plugin/integration.py:138
msgid "No author found"
msgstr ""
-#: plugin/integration.py:136
+#: plugin/integration.py:152
msgid "No date found"
-msgstr ""
+msgstr "Kein Datum gefunden"
#: plugin/models.py:26
msgid "Plugin Configuration"
-msgstr ""
+msgstr "Plugin-Konfiguration"
#: plugin/models.py:27
msgid "Plugin Configurations"
-msgstr ""
+msgstr "Plugin-Konfigurationen"
#: plugin/models.py:32
msgid "Key"
@@ -5193,7 +5289,7 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:195
+#: plugin/models.py:199
msgid "Plugin"
msgstr ""
@@ -5215,23 +5311,23 @@ msgstr ""
#: plugin/samples/integration/sample.py:52
msgid "Numerical"
-msgstr ""
+msgstr "Numerisch"
#: plugin/samples/integration/sample.py:53
msgid "A numerical setting"
-msgstr ""
+msgstr "Eine numerische Einstellung"
#: plugin/samples/integration/sample.py:58
msgid "Choice Setting"
-msgstr ""
+msgstr "Auswahleinstellungen"
#: plugin/samples/integration/sample.py:59
msgid "A setting with multiple choices"
-msgstr ""
+msgstr "Eine Einstellung mit mehreren Optionen"
#: plugin/serializers.py:50
msgid "Source URL"
-msgstr ""
+msgstr "Quell-URL"
#: plugin/serializers.py:51
msgid "Source for the package - this can be a custom registry or a VCS path"
@@ -5239,7 +5335,7 @@ msgstr ""
#: plugin/serializers.py:56
msgid "Package Name"
-msgstr ""
+msgstr "Paket-Name"
#: plugin/serializers.py:57
msgid "Name for the Plugin Package - can also contain a version indicator"
@@ -5247,7 +5343,7 @@ msgstr ""
#: plugin/serializers.py:60
msgid "Confirm plugin installation"
-msgstr ""
+msgstr "Plugin-Installation bestätigen"
#: plugin/serializers.py:61
msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
@@ -5359,12 +5455,12 @@ msgid "Stock Item Test Report"
msgstr "Lagerartikel Test-Bericht"
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:517 stock/templates/stock/item_base.html:156
+#: stock/models.py:519 stock/templates/stock/item_base.html:156
#: templates/js/translated/build.js:293 templates/js/translated/build.js:697
#: templates/js/translated/build.js:1073
#: templates/js/translated/model_renderers.js:95
#: templates/js/translated/order.js:99 templates/js/translated/order.js:1945
-#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:415
+#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:423
msgid "Serial Number"
msgstr "Seriennummer"
@@ -5373,19 +5469,19 @@ msgid "Test Results"
msgstr "Testergebnisse"
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:1948
+#: stock/models.py:1976
msgid "Test"
msgstr "Test"
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:1954
+#: stock/models.py:1982
msgid "Result"
msgstr "Ergebnis"
#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:49
+#: templates/InvenTree/settings/plugin.html:50
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2367
+#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2525
msgid "Date"
msgstr "Datum"
@@ -5398,23 +5494,27 @@ msgid "Fail"
msgstr "fehlgeschlagen"
#: report/templates/report/inventree_test_report_base.html:123
-#: stock/templates/stock/stock_sidebar.html:12
+#: stock/templates/stock/stock_sidebar.html:16
msgid "Installed Items"
msgstr "Verbaute Objekte"
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:578 templates/js/translated/stock.js:748
-#: templates/js/translated/stock.js:2627
+#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756
+#: templates/js/translated/stock.js:2785
msgid "Serial"
msgstr "Seriennummer"
-#: stock/api.py:478
+#: stock/api.py:476
msgid "Quantity is required"
msgstr "Menge ist erforderlich"
-#: stock/forms.py:77 stock/forms.py:251 stock/models.py:574
+#: stock/api.py:483
+msgid "Valid part must be supplied"
+msgstr ""
+
+#: stock/forms.py:77 stock/forms.py:251 stock/models.py:576
#: stock/templates/stock/item_base.html:193
-#: templates/js/translated/stock.js:1701
+#: templates/js/translated/stock.js:1709
msgid "Expiry Date"
msgstr "Ablaufdatum"
@@ -5462,228 +5562,228 @@ msgstr "nicht mehr verbauen bestätigen"
msgid "Confirm removal of installed stock items"
msgstr "Entfernen der verbauten Lagerartikel bestätigen"
-#: stock/models.py:60 stock/models.py:611
+#: stock/models.py:62 stock/models.py:613
#: stock/templates/stock/item_base.html:416
msgid "Owner"
msgstr "Besitzer"
-#: stock/models.py:61 stock/models.py:612
+#: stock/models.py:63 stock/models.py:614
msgid "Select Owner"
msgstr "Besitzer auswählen"
-#: stock/models.py:336
+#: stock/models.py:338
msgid "StockItem with this serial number already exists"
msgstr "Ein Lagerartikel mit dieser Seriennummer existiert bereits"
-#: stock/models.py:372
+#: stock/models.py:374
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr "Teile-Typ ('{pf}') muss {pe} sein"
-#: stock/models.py:382 stock/models.py:391
+#: stock/models.py:384 stock/models.py:393
msgid "Quantity must be 1 for item with a serial number"
msgstr "Anzahl muss für Objekte mit Seriennummer 1 sein"
-#: stock/models.py:383
+#: stock/models.py:385
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:405
+#: stock/models.py:407
msgid "Item cannot belong to itself"
msgstr "Teil kann nicht zu sich selbst gehören"
-#: stock/models.py:411
+#: stock/models.py:413
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:418
+#: stock/models.py:420
msgid "Build reference does not point to the same part object"
msgstr "Referenz verweist nicht auf das gleiche Teil"
-#: stock/models.py:461
+#: stock/models.py:463
msgid "Parent Stock Item"
msgstr "Eltern-Lagerartikel"
-#: stock/models.py:470
+#: stock/models.py:472
msgid "Base part"
msgstr "Basis-Teil"
-#: stock/models.py:478
+#: stock/models.py:480
msgid "Select a matching supplier part for this stock item"
msgstr "Passendes Zuliefererteil für diesen Lagerartikel auswählen"
-#: stock/models.py:484 stock/templates/stock/location.html:16
+#: stock/models.py:486 stock/templates/stock/location.html:16
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr "Bestand-Lagerort"
-#: stock/models.py:487
+#: stock/models.py:489
msgid "Where is this stock item located?"
msgstr "Wo wird dieses Teil normalerweise gelagert?"
-#: stock/models.py:494
+#: stock/models.py:496
msgid "Packaging this stock item is stored in"
msgstr "Die Verpackung dieses Lagerartikel ist gelagert in"
-#: stock/models.py:500 stock/templates/stock/item_base.html:298
+#: stock/models.py:502 stock/templates/stock/item_base.html:298
msgid "Installed In"
msgstr "verbaut in"
-#: stock/models.py:503
+#: stock/models.py:505
msgid "Is this item installed in another item?"
msgstr "Ist dieses Teil in einem anderen verbaut?"
-#: stock/models.py:519
+#: stock/models.py:521
msgid "Serial number for this item"
msgstr "Seriennummer für dieses Teil"
-#: stock/models.py:533
+#: stock/models.py:535
msgid "Batch code for this stock item"
msgstr "Losnummer für diesen Lagerartikel"
-#: stock/models.py:537
+#: stock/models.py:539
msgid "Stock Quantity"
msgstr "Bestand"
-#: stock/models.py:546
+#: stock/models.py:548
msgid "Source Build"
msgstr "Quellbau"
-#: stock/models.py:548
+#: stock/models.py:550
msgid "Build for this stock item"
msgstr "Bauauftrag für diesen Lagerartikel"
-#: stock/models.py:559
+#: stock/models.py:561
msgid "Source Purchase Order"
msgstr "Quelle Bestellung"
-#: stock/models.py:562
+#: stock/models.py:564
msgid "Purchase order for this stock item"
msgstr "Bestellung für diesen Lagerartikel"
-#: stock/models.py:568
+#: stock/models.py:570
msgid "Destination Sales Order"
msgstr "Ziel-Auftrag"
-#: stock/models.py:575
+#: stock/models.py:577
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr "Ablaufdatum für Lagerartikel. Bestand wird danach als abgelaufen gekennzeichnet"
-#: stock/models.py:588
+#: stock/models.py:590
msgid "Delete on deplete"
msgstr "Löschen wenn leer"
-#: stock/models.py:588
+#: stock/models.py:590
msgid "Delete this Stock Item when stock is depleted"
msgstr "Diesen Lagerartikel löschen wenn der Bestand aufgebraucht ist"
-#: stock/models.py:598 stock/templates/stock/item.html:111
+#: stock/models.py:600 stock/templates/stock/item.html:128
msgid "Stock Item Notes"
msgstr "Lagerartikel-Notizen"
-#: stock/models.py:607
+#: stock/models.py:609
msgid "Single unit purchase price at time of purchase"
msgstr "Preis für eine Einheit bei Einkauf"
-#: stock/models.py:1068
+#: stock/models.py:1096
msgid "Part is not set as trackable"
msgstr "Teil ist nicht verfolgbar"
-#: stock/models.py:1074
+#: stock/models.py:1102
msgid "Quantity must be integer"
msgstr "Anzahl muss eine Ganzzahl sein"
-#: stock/models.py:1080
+#: stock/models.py:1108
#, 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:1083
+#: stock/models.py:1111
msgid "Serial numbers must be a list of integers"
msgstr "Seriennummern muss eine Liste von Ganzzahlen sein"
-#: stock/models.py:1086
+#: stock/models.py:1114
msgid "Quantity does not match serial numbers"
msgstr "Anzahl stimmt nicht mit den Seriennummern überein"
-#: stock/models.py:1093
+#: stock/models.py:1121
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr "Seriennummern {exists} existieren bereits"
-#: stock/models.py:1164
+#: stock/models.py:1192
msgid "Stock item has been assigned to a sales order"
-msgstr ""
+msgstr "Artikel wurde einem Kundenauftrag zugewiesen"
-#: stock/models.py:1167
+#: stock/models.py:1195
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1170
+#: stock/models.py:1198
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1173
+#: stock/models.py:1201
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1176
+#: stock/models.py:1204
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1179
+#: stock/models.py:1207
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1186 stock/serializers.py:774
+#: stock/models.py:1214 stock/serializers.py:775
msgid "Duplicate stock items"
-msgstr ""
+msgstr "Artikel duplizeren"
-#: stock/models.py:1190
+#: stock/models.py:1218
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1194
+#: stock/models.py:1222
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1198
+#: stock/models.py:1226
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1369
+#: stock/models.py:1397
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Lagerartikel kann nicht bewegt werden, da kein Bestand vorhanden ist"
-#: stock/models.py:1868
+#: stock/models.py:1896
msgid "Entry notes"
msgstr "Eintrags-Notizen"
-#: stock/models.py:1925
+#: stock/models.py:1953
msgid "Value must be provided for this test"
msgstr "Wert muss für diesen Test angegeben werden"
-#: stock/models.py:1931
+#: stock/models.py:1959
msgid "Attachment must be uploaded for this test"
msgstr "Anhang muss für diesen Test hochgeladen werden"
-#: stock/models.py:1949
+#: stock/models.py:1977
msgid "Test name"
msgstr "Name des Tests"
-#: stock/models.py:1955 templates/js/translated/table_filters.js:271
+#: stock/models.py:1983 templates/js/translated/table_filters.js:271
msgid "Test result"
msgstr "Testergebnis"
-#: stock/models.py:1961
+#: stock/models.py:1989
msgid "Test output value"
msgstr "Test Ausgabe Wert"
-#: stock/models.py:1968
+#: stock/models.py:1996
msgid "Test result attachment"
msgstr "Test Ergebnis Anhang"
-#: stock/models.py:1974
+#: stock/models.py:2002
msgid "Test notes"
msgstr "Test Notizen"
@@ -5708,7 +5808,7 @@ msgstr "Anzahl darf nicht die verfügbare Menge überschreiten ({q})"
msgid "Enter serial numbers for new items"
msgstr "Seriennummern für neue Teile eingeben"
-#: stock/serializers.py:326 stock/serializers.py:731 stock/serializers.py:972
+#: stock/serializers.py:326 stock/serializers.py:732 stock/serializers.py:973
msgid "Destination stock location"
msgstr "Ziel-Bestand"
@@ -5720,63 +5820,63 @@ msgstr "Optionales Notizfeld"
msgid "Serial numbers cannot be assigned to this part"
msgstr "Seriennummern können diesem Teil nicht zugewiesen werden"
-#: stock/serializers.py:588
+#: stock/serializers.py:589
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:592
+#: stock/serializers.py:593
msgid "Item is allocated to a sales order"
-msgstr ""
+msgstr "Artikel ist einem Kundenauftrag zugeordnet"
-#: stock/serializers.py:596
+#: stock/serializers.py:597
msgid "Item is allocated to a build order"
-msgstr ""
+msgstr "Artikel ist einem Fertigungsauftrag zugeordnet"
-#: stock/serializers.py:626
+#: stock/serializers.py:627
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:632
+#: stock/serializers.py:633
msgid "Selected company is not a customer"
-msgstr ""
+msgstr "Ausgewählte Firma ist kein Kunde"
-#: stock/serializers.py:640
+#: stock/serializers.py:641
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:650 stock/serializers.py:880
+#: stock/serializers.py:651 stock/serializers.py:881
msgid "A list of stock items must be provided"
msgstr "Eine Liste der Lagerbestände muss angegeben werden"
-#: stock/serializers.py:738
+#: stock/serializers.py:739
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:743
+#: stock/serializers.py:744
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:744
+#: stock/serializers.py:745
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:749
+#: stock/serializers.py:750
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:750
+#: stock/serializers.py:751
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:760
+#: stock/serializers.py:761
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:842
+#: stock/serializers.py:843
msgid "StockItem primary key value"
msgstr "Primärschlüssel Lagerelement"
-#: stock/serializers.py:870
+#: stock/serializers.py:871
msgid "Stock transaction notes"
msgstr "Bestandsbewegungsnotizen"
@@ -5789,47 +5889,51 @@ msgid "New Entry"
msgstr "neuer Eintrag"
#: stock/templates/stock/item.html:48
+msgid "Stock Item Allocations"
+msgstr ""
+
+#: stock/templates/stock/item.html:64
msgid "Child Stock Items"
msgstr "Kind-Lagerartikel"
-#: stock/templates/stock/item.html:55
+#: stock/templates/stock/item.html:72
msgid "This stock item does not have any child items"
msgstr "Dieser Lagerartikel hat keine Kinder"
-#: stock/templates/stock/item.html:64
-#: stock/templates/stock/stock_sidebar.html:8
+#: stock/templates/stock/item.html:81
+#: stock/templates/stock/stock_sidebar.html:12
msgid "Test Data"
msgstr "Testdaten"
-#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:57
+#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:57
msgid "Test Report"
msgstr "Test-Bericht"
-#: stock/templates/stock/item.html:72
+#: stock/templates/stock/item.html:89
msgid "Delete Test Data"
msgstr "Testdaten löschen"
-#: stock/templates/stock/item.html:76
+#: stock/templates/stock/item.html:93
msgid "Add Test Data"
msgstr "Testdaten hinzufügen"
-#: stock/templates/stock/item.html:133
+#: stock/templates/stock/item.html:150
msgid "Installed Stock Items"
msgstr "Installierte Lagerartikel"
-#: stock/templates/stock/item.html:137 stock/views.py:482
+#: stock/templates/stock/item.html:154 stock/views.py:482
msgid "Install Stock Item"
msgstr "Lagerartikel installieren"
-#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304
+#: stock/templates/stock/item.html:309 stock/templates/stock/item.html:334
msgid "Add Test Result"
msgstr "Testergebnis hinzufügen"
-#: stock/templates/stock/item.html:324
+#: stock/templates/stock/item.html:354
msgid "Edit Test Result"
msgstr "Testergebnis bearbeiten"
-#: stock/templates/stock/item.html:338
+#: stock/templates/stock/item.html:368
msgid "Delete Test Result"
msgstr "Testergebnis löschen"
@@ -5954,7 +6058,7 @@ msgid "Stale"
msgstr "überfällig"
#: stock/templates/stock/item_base.html:206
-#: templates/js/translated/stock.js:1714
+#: templates/js/translated/stock.js:1722
msgid "Last Updated"
msgstr "Zuletzt aktualisiert"
@@ -6113,7 +6217,7 @@ msgid "Sublocations"
msgstr "Unter-Lagerorte"
#: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164
-#: templates/stats.html:97 users/models.py:42
+#: templates/stats.html:109 users/models.py:42
msgid "Stock Locations"
msgstr "Bestand-Lagerorte"
@@ -6137,7 +6241,7 @@ msgstr "Lade..."
msgid "Stock Tracking"
msgstr "Lagerartikel-Verfolgung"
-#: stock/templates/stock/stock_sidebar.html:16
+#: stock/templates/stock/stock_sidebar.html:20
msgid "Child Items"
msgstr "Untergeordnete Objekte"
@@ -6166,7 +6270,7 @@ msgstr "Diese Aktion kann nicht einfach rückgängig gemacht werden"
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr "Sind Sie sicher, dass Sie diesen Lagerartikel-Verfolgungs-Eintrag löschen wollen?"
-#: stock/views.py:162
+#: stock/views.py:162 templates/js/translated/stock.js:139
msgid "Edit Stock Location"
msgstr "Lagerartikel-Ort bearbeiten"
@@ -6206,7 +6310,7 @@ msgstr "Lagerartikel-QR-Code"
msgid "Uninstall Stock Items"
msgstr "Lagerartikel deinstallieren"
-#: stock/views.py:727 templates/js/translated/stock.js:1066
+#: stock/views.py:727 templates/js/translated/stock.js:1074
msgid "Confirm stock adjustment"
msgstr "Bestands-Anpassung bestätigen"
@@ -6214,7 +6318,7 @@ msgstr "Bestands-Anpassung bestätigen"
msgid "Uninstalled stock items"
msgstr "Lagerartikel deinstalliert"
-#: stock/views.py:760 templates/js/translated/stock.js:324
+#: stock/views.py:760 templates/js/translated/stock.js:332
msgid "Edit Stock Item"
msgstr "Lagerartikel bearbeiten"
@@ -6226,7 +6330,7 @@ msgstr "Neuen Lagerort erstellen"
msgid "Create new Stock Item"
msgstr "Neuen Lagerartikel hinzufügen"
-#: stock/views.py:1153 templates/js/translated/stock.js:304
+#: stock/views.py:1153 templates/js/translated/stock.js:312
msgid "Duplicate Stock Item"
msgstr "Bestand duplizieren"
@@ -6270,13 +6374,25 @@ msgstr "Seite nicht gefunden"
msgid "The requested page does not exist"
msgstr "Seite existiert nicht"
+#: templates/500.html:5 templates/500.html:11
+msgid "Internal Server Error"
+msgstr "Interner Serverfehler"
+
+#: templates/500.html:14
+msgid "The InvenTree server raised an internal error"
+msgstr "Der InvenTree-Server hat einen internen Fehler geworfen"
+
+#: templates/500.html:15
+msgid "Refer to the error log in the admin interface for further details"
+msgstr "Weitere Details finden Sie im Fehlerlog im Admin-Interface"
+
#: templates/503.html:10 templates/503.html:35
msgid "Site is in Maintenance"
-msgstr ""
+msgstr "System wird gewartet"
#: templates/503.html:41
msgid "The site is currently in maintenance and should be up again soon!"
-msgstr ""
+msgstr "Die Seite ist derzeit in Wartung und sollte bald wieder verfügbar sein!"
#: templates/InvenTree/index.html:7
msgid "Index"
@@ -6392,22 +6508,22 @@ msgid "Signup"
msgstr "Anmelden"
#: templates/InvenTree/settings/mixins/settings.html:5
-#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:118
+#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113
msgid "Settings"
msgstr "Einstellungen"
#: templates/InvenTree/settings/mixins/urls.html:5
msgid "URLs"
-msgstr ""
+msgstr "URLs"
#: templates/InvenTree/settings/mixins/urls.html:8
#, python-format
msgid "The Base-URL for this plugin is %(base)s."
-msgstr ""
+msgstr "Die Basis-URL für dieses Plugin ist %(base)s."
#: templates/InvenTree/settings/mixins/urls.html:23
msgid "Open in new tab"
-msgstr ""
+msgstr "In neuem Tab öffnen"
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
@@ -6427,68 +6543,68 @@ msgstr "Teil-Parametervorlage"
#: templates/InvenTree/settings/plugin.html:10
msgid "Plugin Settings"
-msgstr ""
+msgstr "Plugin-Einstellungen"
#: templates/InvenTree/settings/plugin.html:16
msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage."
-msgstr ""
+msgstr "Wenn Sie die folgenden Einstellungen ändern, müssen Sie InvenTree sofort neu starten. Ändern Sie dies nicht während der aktiven Nutzung."
-#: templates/InvenTree/settings/plugin.html:32
+#: templates/InvenTree/settings/plugin.html:33
msgid "Plugins"
-msgstr ""
+msgstr "Plugins"
-#: templates/InvenTree/settings/plugin.html:37
+#: templates/InvenTree/settings/plugin.html:38
#: templates/js/translated/plugin.js:15
msgid "Install Plugin"
-msgstr ""
+msgstr "Plugin installieren"
-#: templates/InvenTree/settings/plugin.html:46 templates/navbar.html:111
+#: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111
#: users/models.py:39
msgid "Admin"
msgstr "Admin"
-#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin.html:49
#: templates/InvenTree/settings/plugin_settings.html:28
msgid "Author"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:50
+#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin_settings.html:43
msgid "Version"
-msgstr ""
+msgstr "Version"
-#: templates/InvenTree/settings/plugin.html:91
+#: templates/InvenTree/settings/plugin.html:92
msgid "Inactive plugins"
-msgstr ""
+msgstr "Inaktive Plugins"
-#: templates/InvenTree/settings/plugin.html:114
+#: templates/InvenTree/settings/plugin.html:115
msgid "Plugin Error Stack"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:123
+#: templates/InvenTree/settings/plugin.html:124
msgid "Stage"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:125
+#: templates/InvenTree/settings/plugin.html:126
msgid "Message"
msgstr ""
#: templates/InvenTree/settings/plugin_settings.html:10
#, python-format
msgid "Plugin details for %(name)s"
-msgstr ""
+msgstr "Plugin-Details für %(name)s"
#: templates/InvenTree/settings/plugin_settings.html:17
msgid "Plugin information"
-msgstr ""
+msgstr "Plugin-Informationen"
#: templates/InvenTree/settings/plugin_settings.html:48
msgid "no version information supplied"
-msgstr ""
+msgstr "keine Versionsinformation angegeben"
#: templates/InvenTree/settings/plugin_settings.html:62
msgid "License"
-msgstr ""
+msgstr "Lizenz"
#: templates/InvenTree/settings/plugin_settings.html:71
msgid "The code information is pulled from the latest git commit for this plugin. It might not reflect official version numbers or information but the actual code running."
@@ -6500,23 +6616,23 @@ msgstr ""
#: templates/InvenTree/settings/plugin_settings.html:83
msgid "Installation method"
-msgstr ""
+msgstr "Installationsmethode"
#: templates/InvenTree/settings/plugin_settings.html:86
msgid "This plugin was installed as a package"
-msgstr ""
+msgstr "Dieses Plugin wurde als Paket installiert"
#: templates/InvenTree/settings/plugin_settings.html:88
msgid "This plugin was found in a local InvenTree path"
-msgstr ""
+msgstr "Dieses Plugin wurde in einem lokalen InvenTree Pfad gefunden"
#: templates/InvenTree/settings/plugin_settings.html:94
msgid "Installation path"
-msgstr ""
+msgstr "Installationspfad"
#: templates/InvenTree/settings/plugin_settings.html:100
msgid "Commit Author"
-msgstr ""
+msgstr "Commit-Autor"
#: templates/InvenTree/settings/plugin_settings.html:104
#: templates/about.html:47
@@ -6530,7 +6646,7 @@ msgstr "Commit-Hash"
#: templates/InvenTree/settings/plugin_settings.html:112
msgid "Commit Message"
-msgstr ""
+msgstr "Commit-Nachricht"
#: templates/InvenTree/settings/plugin_settings.html:117
msgid "Sign Status"
@@ -6557,37 +6673,37 @@ msgstr "Kein Wert angegeben"
msgid "Edit setting"
msgstr "Einstellungen ändern"
-#: templates/InvenTree/settings/settings.html:75
+#: templates/InvenTree/settings/settings.html:78
msgid "Edit Plugin Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:77
+#: templates/InvenTree/settings/settings.html:80
msgid "Edit Global Setting"
msgstr "Allgemeine Einstellungen bearbeiten"
-#: templates/InvenTree/settings/settings.html:79
+#: templates/InvenTree/settings/settings.html:82
msgid "Edit User Setting"
msgstr "Benutzereinstellungen bearbeiten"
-#: templates/InvenTree/settings/settings.html:168
+#: templates/InvenTree/settings/settings.html:171
msgid "No category parameter templates found"
msgstr "Keine Kategorie-Parametervorlagen gefunden"
-#: templates/InvenTree/settings/settings.html:190
-#: templates/InvenTree/settings/settings.html:289
+#: templates/InvenTree/settings/settings.html:193
+#: templates/InvenTree/settings/settings.html:292
msgid "Edit Template"
msgstr "Vorlage bearbeiten"
-#: templates/InvenTree/settings/settings.html:191
-#: templates/InvenTree/settings/settings.html:290
+#: templates/InvenTree/settings/settings.html:194
+#: templates/InvenTree/settings/settings.html:293
msgid "Delete Template"
msgstr "Vorlage löschen"
-#: templates/InvenTree/settings/settings.html:269
+#: templates/InvenTree/settings/settings.html:272
msgid "No part parameter templates found"
msgstr "Keine Teilparametervorlagen gefunden"
-#: templates/InvenTree/settings/settings.html:273
+#: templates/InvenTree/settings/settings.html:276
msgid "ID"
msgstr "ID"
@@ -6765,124 +6881,105 @@ msgstr ""
msgid "Remove multifactor"
msgstr ""
-#: templates/InvenTree/settings/user.html:219
+#: templates/InvenTree/settings/user.html:220
+msgid "Active Sessions"
+msgstr "Aktive Sitzungen"
+
+#: templates/InvenTree/settings/user.html:226
+msgid "Log out active sessions (except this one)"
+msgstr "Aktive Sitzungen abmelden (ausgenommen diese)"
+
+#: templates/InvenTree/settings/user.html:227
+msgid "Log Out Active Sessions"
+msgstr "Aktive Sitzungen abmelden"
+
+#: templates/InvenTree/settings/user.html:236
+msgid "unknown on unknown"
+msgstr "unbekannt auf unbekanntem"
+
+#: templates/InvenTree/settings/user.html:237
+msgid "unknown"
+msgstr "unbekannt"
+
+#: templates/InvenTree/settings/user.html:241
+msgid "IP Address"
+msgstr "IP Adresse"
+
+#: templates/InvenTree/settings/user.html:242
+msgid "Device"
+msgstr "Gerät"
+
+#: templates/InvenTree/settings/user.html:243
+msgid "Last Activity"
+msgstr "Letzte Aktivität"
+
+#: templates/InvenTree/settings/user.html:252
+#, python-format
+msgid "%(time)s ago (this session)"
+msgstr "%(time)s vor (diese Sitzung)"
+
+#: templates/InvenTree/settings/user.html:254
+#, python-format
+msgid "%(time)s ago"
+msgstr "%(time)s vor"
+
+#: templates/InvenTree/settings/user.html:266
+msgid "Do you really want to remove the selected email address?"
+msgstr "Möchten Sie die ausgewählte E-Mail-Adresse wirklich entfernen?"
+
#: templates/InvenTree/settings/user_display.html:25
msgid "Theme Settings"
msgstr "Anzeige-Einstellungen"
-#: templates/InvenTree/settings/user.html:227
#: templates/InvenTree/settings/user_display.html:35
msgid "Select theme"
msgstr "Stil auswählen"
-#: templates/InvenTree/settings/user.html:237
#: templates/InvenTree/settings/user_display.html:46
msgid "Set Theme"
msgstr "Design auswählen"
-#: templates/InvenTree/settings/user.html:246
#: templates/InvenTree/settings/user_display.html:54
msgid "Language Settings"
msgstr "Spracheinstellung"
-#: templates/InvenTree/settings/user.html:254
#: templates/InvenTree/settings/user_display.html:63
msgid "Select language"
msgstr "Sprache festlegen"
-#: templates/InvenTree/settings/user.html:270
#: templates/InvenTree/settings/user_display.html:79
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr "%(lang_translated)s%% übersetzt"
-#: templates/InvenTree/settings/user.html:272
#: templates/InvenTree/settings/user_display.html:81
msgid "No translations available"
msgstr "Keine Übersetzungen verfügbar"
-#: templates/InvenTree/settings/user.html:279
#: templates/InvenTree/settings/user_display.html:88
msgid "Set Language"
msgstr "Sprache festlegen"
-#: templates/InvenTree/settings/user.html:281
#: templates/InvenTree/settings/user_display.html:91
msgid "Some languages are not complete"
msgstr "Einige Sprachen sind nicht vollständig übersetzt"
-#: templates/InvenTree/settings/user.html:283
#: templates/InvenTree/settings/user_display.html:93
msgid "Show only sufficent"
msgstr "Zeige nur ausreichende"
-#: templates/InvenTree/settings/user.html:285
+#: templates/InvenTree/settings/user_display.html:95
+msgid "and hidden."
+msgstr "und versteckt."
+
#: templates/InvenTree/settings/user_display.html:95
msgid "Show them too"
msgstr "Auch unvollständige anzeigen"
-#: templates/InvenTree/settings/user.html:292
#: templates/InvenTree/settings/user_display.html:101
msgid "Help the translation efforts!"
msgstr "Hilf bei der Übersetzung!"
-#: templates/InvenTree/settings/user.html:293
-#, python-format
-msgid "Native language translation of the\n"
-" InvenTree web application is community contributed via crowdin. Contributions are\n"
-" welcomed and encouraged."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:302
-msgid "Active Sessions"
-msgstr "Aktive Sitzungen"
-
-#: templates/InvenTree/settings/user.html:308
-msgid "Log out active sessions (except this one)"
-msgstr "Aktive Sitzungen abmelden (ausgenommen diese)"
-
-#: templates/InvenTree/settings/user.html:309
-msgid "Log Out Active Sessions"
-msgstr "Aktive Sitzungen abmelden"
-
-#: templates/InvenTree/settings/user.html:318
-msgid "unknown on unknown"
-msgstr "unbekannt auf unbekanntem"
-
-#: templates/InvenTree/settings/user.html:319
-msgid "unknown"
-msgstr "unbekannt"
-
-#: templates/InvenTree/settings/user.html:323
-msgid "IP Address"
-msgstr "IP Adresse"
-
-#: templates/InvenTree/settings/user.html:324
-msgid "Device"
-msgstr "Gerät"
-
-#: templates/InvenTree/settings/user.html:325
-msgid "Last Activity"
-msgstr "Letzte Aktivität"
-
-#: templates/InvenTree/settings/user.html:334
-#, python-format
-msgid "%(time)s ago (this session)"
-msgstr "%(time)s vor (diese Sitzung)"
-
-#: templates/InvenTree/settings/user.html:336
-#, python-format
-msgid "%(time)s ago"
-msgstr "%(time)s vor"
-
-#: templates/InvenTree/settings/user.html:348
-msgid "Do you really want to remove the selected email address?"
-msgstr "Möchten Sie die ausgewählte E-Mail-Adresse wirklich entfernen?"
-
-#: templates/InvenTree/settings/user_display.html:95
-msgid "and hidden."
-msgstr "und versteckt."
-
#: templates/InvenTree/settings/user_display.html:102
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
@@ -6901,9 +6998,9 @@ msgid "InvenTree Version Information"
msgstr "InvenTree-Versionsinformationen"
#: templates/about.html:11 templates/about.html:105
-#: templates/js/translated/bom.js:395 templates/js/translated/modals.js:53
-#: templates/js/translated/modals.js:573 templates/js/translated/modals.js:667
-#: templates/js/translated/modals.js:970 templates/modals.html:15
+#: templates/js/translated/bom.js:407 templates/js/translated/modals.js:53
+#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
+#: templates/js/translated/modals.js:983 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr "Schliessen"
@@ -7112,7 +7209,7 @@ msgstr ""
#: templates/allauth_2fa/remove.html:9
msgid "Are you sure?"
-msgstr ""
+msgstr "Bist du sicher?"
#: templates/allauth_2fa/remove.html:14
msgid "Disable Two-Factor"
@@ -7120,23 +7217,23 @@ msgstr ""
#: templates/allauth_2fa/setup.html:6
msgid "Setup Two-Factor Authentication"
-msgstr ""
+msgstr "Zwei-Faktor-Authentifizierung einrichten"
#: templates/allauth_2fa/setup.html:10
msgid "Step 1"
-msgstr ""
+msgstr "Schritt 1"
#: templates/allauth_2fa/setup.html:14
msgid "Scan the QR code below with a token generator of your choice (for instance Google Authenticator)."
-msgstr ""
+msgstr "Scannen Sie den QR-Code unten mit einem Token-Generator Ihrer Wahl (z.B. Google Authenticator)."
#: templates/allauth_2fa/setup.html:23
msgid "Step 2"
-msgstr ""
+msgstr "Schritt 2"
#: templates/allauth_2fa/setup.html:27
msgid "Input a token generated by the app:"
-msgstr ""
+msgstr "Geben Sie das von der App generierte Token ein:"
#: templates/allauth_2fa/setup.html:35
msgid "Verify"
@@ -7180,13 +7277,13 @@ msgid "The following parts are low on required stock"
msgstr "Bei den folgenden Teilen gibt es wenige Lagerartikel"
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1103
+#: templates/js/translated/bom.js:1117
msgid "Required Quantity"
msgstr "Benötigte Menge"
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:579 templates/js/translated/build.js:1189
+#: templates/js/translated/bom.js:591 templates/js/translated/build.js:1189
#: templates/js/translated/build.js:1810
#: templates/js/translated/table_filters.js:178
msgid "Available"
@@ -7210,10 +7307,6 @@ msgstr " Der verfügbare Bestand für %(part)s ist unter das konfigurierte Minde
msgid "Click on the following link to view this part"
msgstr "Klicken Sie auf den folgenden Link, um diesen Teil anzuzeigen"
-#: templates/email/low_stock_notification.html:17
-msgid "Total Stock"
-msgstr "Gesamtbestand"
-
#: templates/email/low_stock_notification.html:19
msgid "Minimum Quantity"
msgstr "Mindestmenge"
@@ -7234,11 +7327,11 @@ msgstr "Der angegebene Server muss erreichbar sein"
msgid "Remote image must not exceed maximum allowable file size"
msgstr "Das Bild darf nicht größer als die maximal-erlaubte Größe sein"
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1040
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1053
msgid "No Response"
msgstr "Keine Antwort"
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1041
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1054
msgid "No response from the InvenTree server"
msgstr "keine Antwort vom InvenTree Server"
@@ -7250,43 +7343,43 @@ msgstr "Fehler 400: Fehlerhafte Anfrage"
msgid "API request returned error code 400"
msgstr "Fehler-Code 400 zurückgegeben"
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1063
msgid "Error 401: Not Authenticated"
msgstr "Fehler 401: Nicht Angemeldet"
-#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1051
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1064
msgid "Authentication credentials not supplied"
msgstr "Authentication Kredentials nicht angegeben"
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1068
msgid "Error 403: Permission Denied"
msgstr "Fehler 403: keine Berechtigung"
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1056
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1069
msgid "You do not have the required permissions to access this function"
msgstr "Fehlende Berechtigung für diese Aktion"
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1073
msgid "Error 404: Resource Not Found"
msgstr "Fehler 404: Ressource nicht gefunden"
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1061
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1074
msgid "The requested resource could not be located on the server"
msgstr "Die angefragte Ressource kann auf diesem Server nicht gefunden werden"
#: templates/js/translated/api.js:212
msgid "Error 405: Method Not Allowed"
-msgstr ""
+msgstr "Fehler 405: Methode nicht erlaubt"
#: templates/js/translated/api.js:213
msgid "HTTP method not allowed at URL"
msgstr ""
-#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1065
+#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1078
msgid "Error 408: Timeout"
msgstr "Fehler 408: Zeitüberschreitung"
-#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1079
msgid "Connection timeout while requesting data from server"
msgstr "Verbindungszeitüberschreitung bei der Datenanforderung"
@@ -7355,7 +7448,7 @@ msgid "Unknown response from server"
msgstr "Unbekannte Antwort von Server erhalten"
#: templates/js/translated/barcode.js:140
-#: templates/js/translated/modals.js:1030
+#: templates/js/translated/modals.js:1043
msgid "Invalid server response"
msgstr "Ungültige Antwort von Server"
@@ -7383,7 +7476,7 @@ msgstr "Dadurch wird die Verknüpfung zwischen diesem Lagerartikel und dem Barco
msgid "Unlink"
msgstr "Entfernen"
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1018
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026
msgid "Remove stock item"
msgstr "Lagerartikel entfernen"
@@ -7427,15 +7520,15 @@ msgstr "Barcode entspricht keinem Lagerort"
#: templates/js/translated/bom.js:36
msgid "Download BOM Template"
-msgstr ""
+msgstr "Vorlage einer Stückliste herunterladen"
#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73
-#: templates/js/translated/order.js:369 templates/js/translated/stock.js:510
+#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518
msgid "Format"
msgstr "Format"
#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74
-#: templates/js/translated/order.js:370 templates/js/translated/stock.js:511
+#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519
msgid "Select file format"
msgstr "Dateiformat auswählen"
@@ -7491,87 +7584,87 @@ msgstr "Zulieferer-Daten in Stückliste-Export einschließen"
msgid "Remove substitute part"
msgstr "Ersatzteil entfernen"
-#: templates/js/translated/bom.js:340
-msgid "Select and add a new variant item using the input below"
-msgstr "Wählen Sie eine neue Variante aus und fügen Sie sie mit den folgenden Eingaben hinzu"
+#: templates/js/translated/bom.js:352
+msgid "Select and add a new substitute part using the input below"
+msgstr ""
-#: templates/js/translated/bom.js:351
+#: templates/js/translated/bom.js:363
msgid "Are you sure you wish to remove this substitute part link?"
msgstr "Sind Sie sicher, dass Sie dieses Ersatzteil entfernen möchten?"
-#: templates/js/translated/bom.js:357
+#: templates/js/translated/bom.js:369
msgid "Remove Substitute Part"
msgstr "Ersatzteil entfernen"
-#: templates/js/translated/bom.js:396
+#: templates/js/translated/bom.js:408
msgid "Add Substitute"
msgstr "Ersatzteil hinzufügen"
-#: templates/js/translated/bom.js:397
+#: templates/js/translated/bom.js:409
msgid "Edit BOM Item Substitutes"
msgstr "Stücklisten Ersatzteile bearbeiten"
-#: templates/js/translated/bom.js:516
+#: templates/js/translated/bom.js:528
msgid "Substitutes Available"
msgstr "Ersatzteile verfügbar"
-#: templates/js/translated/bom.js:520 templates/js/translated/build.js:1171
+#: templates/js/translated/bom.js:532 templates/js/translated/build.js:1171
msgid "Variant stock allowed"
msgstr "Varianten erlaubt"
-#: templates/js/translated/bom.js:525
+#: templates/js/translated/bom.js:537
msgid "Open subassembly"
msgstr "Unterbaugruppe öffnen"
-#: templates/js/translated/bom.js:597
+#: templates/js/translated/bom.js:609
msgid "Substitutes"
msgstr "Ersatzteile"
-#: templates/js/translated/bom.js:612
+#: templates/js/translated/bom.js:624
msgid "Purchase Price Range"
msgstr "Kaufpreisspanne"
-#: templates/js/translated/bom.js:619
+#: templates/js/translated/bom.js:631
msgid "Purchase Price Average"
msgstr "Durchschnittlicher Kaufpreis"
-#: templates/js/translated/bom.js:668 templates/js/translated/bom.js:757
+#: templates/js/translated/bom.js:680 templates/js/translated/bom.js:769
msgid "View BOM"
msgstr "Stückliste anzeigen"
-#: templates/js/translated/bom.js:728
+#: templates/js/translated/bom.js:740
msgid "Validate BOM Item"
msgstr "Stücklisten-Position kontrollieren"
-#: templates/js/translated/bom.js:730
+#: templates/js/translated/bom.js:742
msgid "This line has been validated"
msgstr "Diese Position wurde kontrolliert"
-#: templates/js/translated/bom.js:732
+#: templates/js/translated/bom.js:744
msgid "Edit substitute parts"
msgstr "Ersatzteile bearbeiten"
-#: templates/js/translated/bom.js:734 templates/js/translated/bom.js:908
+#: templates/js/translated/bom.js:746 templates/js/translated/bom.js:920
msgid "Edit BOM Item"
msgstr "Stücklisten-Position bearbeiten"
-#: templates/js/translated/bom.js:736 templates/js/translated/bom.js:891
+#: templates/js/translated/bom.js:748 templates/js/translated/bom.js:903
msgid "Delete BOM Item"
msgstr "Stücklisten-Position löschen"
-#: templates/js/translated/bom.js:830 templates/js/translated/build.js:915
+#: templates/js/translated/bom.js:842 templates/js/translated/build.js:915
msgid "No BOM items found"
msgstr "Keine Stücklisten-Position(en) gefunden"
-#: templates/js/translated/bom.js:886
+#: templates/js/translated/bom.js:898
msgid "Are you sure you want to delete this BOM item?"
msgstr "Sind Sie sicher, dass Sie diese Stücklisten-Position löschen wollen?"
-#: templates/js/translated/bom.js:1086 templates/js/translated/build.js:1155
+#: templates/js/translated/bom.js:1100 templates/js/translated/build.js:1155
msgid "Required Part"
msgstr "benötigtes Teil"
-#: templates/js/translated/bom.js:1108
+#: templates/js/translated/bom.js:1122
msgid "Inherited from parent BOM"
msgstr "Geerbt von übergeordneter Stückliste"
@@ -7727,9 +7820,9 @@ msgstr "Keine passenden Lagerbestände"
msgid "No builds matching query"
msgstr "Keine Bauaufträge passen zur Anfrage"
-#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1206
-#: templates/js/translated/part.js:1617 templates/js/translated/stock.js:1512
-#: templates/js/translated/stock.js:2321
+#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1213
+#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1520
+#: templates/js/translated/stock.js:2479
msgid "Select"
msgstr "Auswählen"
@@ -7737,7 +7830,7 @@ msgstr "Auswählen"
msgid "Build order is overdue"
msgstr "Bauauftrag ist überfällig"
-#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2540
+#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2698
msgid "No user information"
msgstr "Keine Benutzerinformation"
@@ -7810,34 +7903,34 @@ msgid "No manufacturer parts found"
msgstr "Keine Herstellerteile gefunden"
#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:511
-#: templates/js/translated/part.js:596
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:517
+#: templates/js/translated/part.js:602
msgid "Template part"
msgstr "Vorlagenteil"
#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:515
-#: templates/js/translated/part.js:600
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:521
+#: templates/js/translated/part.js:606
msgid "Assembled part"
msgstr "Baugruppe"
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:690
+#: templates/js/translated/company.js:631 templates/js/translated/part.js:696
msgid "No parameters found"
msgstr "Keine Parameter gefunden"
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:732
+#: templates/js/translated/company.js:668 templates/js/translated/part.js:738
msgid "Edit parameter"
msgstr "Parameter bearbeiten"
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:733
+#: templates/js/translated/company.js:669 templates/js/translated/part.js:739
msgid "Delete parameter"
msgstr "Parameter löschen"
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:750
+#: templates/js/translated/company.js:688 templates/js/translated/part.js:756
msgid "Edit Parameter"
msgstr "Parameter bearbeiten"
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:762
+#: templates/js/translated/company.js:699 templates/js/translated/part.js:768
msgid "Delete Parameter"
msgstr "Parameter löschen"
@@ -7846,12 +7939,12 @@ msgid "No supplier parts found"
msgstr "Keine Zuliefererteile gefunden"
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:420
+#: templates/js/translated/filters.js:429
msgid "true"
msgstr "ja"
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:421
+#: templates/js/translated/filters.js:430
msgid "false"
msgstr "nein"
@@ -7871,7 +7964,7 @@ msgstr "Filter hinzufügen"
msgid "Clear all filters"
msgstr "Filter entfernen"
-#: templates/js/translated/filters.js:329
+#: templates/js/translated/filters.js:338
msgid "Create filter"
msgstr "Filter anlegen"
@@ -7900,20 +7993,20 @@ msgstr "Anzeigevorgang nicht erlaubt"
msgid "Enter a valid number"
msgstr "Gib eine gültige Nummer ein"
-#: templates/js/translated/forms.js:1080 templates/modals.html:19
+#: templates/js/translated/forms.js:1082 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr "Fehler in Formular"
-#: templates/js/translated/forms.js:1471
+#: templates/js/translated/forms.js:1487
msgid "No results found"
msgstr "Keine Ergebnisse gefunden"
-#: templates/js/translated/forms.js:1675
+#: templates/js/translated/forms.js:1691
msgid "Searching"
msgstr "Suche"
-#: templates/js/translated/forms.js:1895
+#: templates/js/translated/forms.js:1930
msgid "Clear input"
msgstr "Eingabe leeren"
@@ -7926,7 +8019,7 @@ msgid "NO"
msgstr "NEIN"
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1042
+#: templates/js/translated/stock.js:1050
msgid "Select Stock Items"
msgstr "Lagerartikel auswählen"
@@ -7976,12 +8069,12 @@ msgid "Select Label Template"
msgstr "Label-Vorlage auswählen"
#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
-#: templates/js/translated/modals.js:599
+#: templates/js/translated/modals.js:610
msgid "Cancel"
msgstr "Abbrechen"
#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:666 templates/js/translated/modals.js:969
+#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:982
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr "Abschicken"
@@ -7990,47 +8083,47 @@ msgstr "Abschicken"
msgid "Form Title"
msgstr "Formulartitel"
-#: templates/js/translated/modals.js:381
+#: templates/js/translated/modals.js:392
msgid "Waiting for server..."
msgstr "Warte auf Server..."
-#: templates/js/translated/modals.js:540
+#: templates/js/translated/modals.js:551
msgid "Show Error Information"
msgstr "Fehler-Informationen anzeigen"
-#: templates/js/translated/modals.js:598
+#: templates/js/translated/modals.js:609
msgid "Accept"
msgstr "Akzeptieren"
-#: templates/js/translated/modals.js:655
+#: templates/js/translated/modals.js:666
msgid "Loading Data"
msgstr "Lade Daten"
-#: templates/js/translated/modals.js:921
+#: templates/js/translated/modals.js:934
msgid "Invalid response from server"
msgstr "ungültige Antwort vom Server"
-#: templates/js/translated/modals.js:921
+#: templates/js/translated/modals.js:934
msgid "Form data missing from server response"
msgstr "Formulardaten fehlen bei Serverantwort"
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:946
msgid "Error posting form data"
msgstr "Formulardaten fehlerhaft"
-#: templates/js/translated/modals.js:1030
+#: templates/js/translated/modals.js:1043
msgid "JSON response missing form data"
msgstr "JSON Antwort enthält keine Formulardaten"
-#: templates/js/translated/modals.js:1045
+#: templates/js/translated/modals.js:1058
msgid "Error 400: Bad Request"
msgstr "Fehler 400: Ungültige Anfrage"
-#: templates/js/translated/modals.js:1046
+#: templates/js/translated/modals.js:1059
msgid "Server returned error code 400"
msgstr "Fehler 400 von Server erhalten"
-#: templates/js/translated/modals.js:1069
+#: templates/js/translated/modals.js:1082
msgid "Error requesting form data"
msgstr "Fehler bei Formulardaten-Anfrage"
@@ -8054,45 +8147,46 @@ msgstr "Bauauftrag-ID"
msgid "Part ID"
msgstr "Teil-ID"
-#: templates/js/translated/model_renderers.js:236
+#: templates/js/translated/model_renderers.js:249
+#: templates/js/translated/model_renderers.js:270
msgid "Order ID"
msgstr "Bestell-ID"
-#: templates/js/translated/model_renderers.js:253
+#: templates/js/translated/model_renderers.js:287
msgid "Shipment ID"
-msgstr ""
+msgstr "Sendungs-ID"
-#: templates/js/translated/model_renderers.js:273
+#: templates/js/translated/model_renderers.js:307
msgid "Category ID"
msgstr "Kategorie-ID"
-#: templates/js/translated/model_renderers.js:310
+#: templates/js/translated/model_renderers.js:344
msgid "Manufacturer Part ID"
msgstr "Herstellerteil-ID"
-#: templates/js/translated/model_renderers.js:339
+#: templates/js/translated/model_renderers.js:373
msgid "Supplier Part ID"
msgstr "Zuliefererteil-ID"
#: templates/js/translated/order.js:75
msgid "No stock items have been allocated to this shipment"
-msgstr ""
+msgstr "Dieser Sendung wurden keine Artikel zugewiesen"
#: templates/js/translated/order.js:80
msgid "The following stock items will be shipped"
-msgstr ""
+msgstr "Die folgenden Artikel werden verschickt"
#: templates/js/translated/order.js:120
msgid "Complete Shipment"
-msgstr ""
+msgstr "Sendung fertigstellen"
#: templates/js/translated/order.js:126
msgid "Confirm Shipment"
-msgstr ""
+msgstr "Sendung bestätigen"
#: templates/js/translated/order.js:181
msgid "Create New Shipment"
-msgstr ""
+msgstr "Sendung anlegen"
#: templates/js/translated/order.js:206
msgid "Add Customer"
@@ -8118,7 +8212,7 @@ msgstr "Mindestens eine Position muss ausgewählt werden"
msgid "Quantity to receive"
msgstr "Zu erhaltende Menge"
-#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2123
+#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2131
msgid "Stock Status"
msgstr "Status"
@@ -8142,7 +8236,7 @@ msgstr "Empfang der Teile bestätigen"
msgid "Receive Purchase Order Items"
msgstr "Bestellpositionen erhalten"
-#: templates/js/translated/order.js:790 templates/js/translated/part.js:803
+#: templates/js/translated/order.js:790 templates/js/translated/part.js:809
msgid "No purchase orders found"
msgstr "Keine Bestellungen gefunden"
@@ -8167,7 +8261,7 @@ msgid "Total"
msgstr "Summe"
#: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163
-#: templates/js/translated/part.js:1834 templates/js/translated/part.js:2045
+#: templates/js/translated/part.js:1841 templates/js/translated/part.js:2052
msgid "Unit Price"
msgstr "Stück-Preis"
@@ -8183,7 +8277,7 @@ msgstr "Position bearbeiten"
msgid "Delete line item"
msgstr "Position löschen"
-#: templates/js/translated/order.js:1166 templates/js/translated/part.js:935
+#: templates/js/translated/order.js:1166 templates/js/translated/part.js:942
msgid "Receive line item"
msgstr "Position empfangen"
@@ -8197,43 +8291,43 @@ msgstr "Ungültiger Kunde"
#: templates/js/translated/order.js:1322
msgid "Edit shipment"
-msgstr ""
+msgstr "Sendung bearbeiten"
#: templates/js/translated/order.js:1325
msgid "Complete shipment"
-msgstr ""
+msgstr "Sendung fertigstellen"
#: templates/js/translated/order.js:1330
msgid "Delete shipment"
-msgstr ""
+msgstr "Sendung löschen"
#: templates/js/translated/order.js:1350
msgid "Edit Shipment"
-msgstr ""
+msgstr "Sendung bearbeiten"
#: templates/js/translated/order.js:1367
msgid "Delete Shipment"
-msgstr ""
+msgstr "Sendung löschen"
#: templates/js/translated/order.js:1401
msgid "No matching shipments found"
-msgstr ""
+msgstr "Keine passenden Sendungen gefunden"
#: templates/js/translated/order.js:1411
msgid "Shipment Reference"
-msgstr ""
+msgstr "Sendungsreferenz"
#: templates/js/translated/order.js:1435
msgid "Not shipped"
-msgstr ""
+msgstr "Nicht versandt"
#: templates/js/translated/order.js:1441
msgid "Tracking"
-msgstr ""
+msgstr "Nachverfolgen"
#: templates/js/translated/order.js:1601
msgid "Allocate Stock Items to Sales Order"
-msgstr ""
+msgstr "Artikel zu Kundenauftrag zuweisen"
#: templates/js/translated/order.js:1809
msgid "No sales order allocations found"
@@ -8252,7 +8346,7 @@ msgid "Delete Stock Allocation"
msgstr "Bestands-Zuordnung löschen"
#: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048
-#: templates/js/translated/stock.js:1428
+#: templates/js/translated/stock.js:1436
msgid "Shipped to customer"
msgstr "an Kunde versand"
@@ -8274,11 +8368,11 @@ msgstr "Preis berechnen"
#: templates/js/translated/order.js:2321
msgid "Cannot be deleted as items have been shipped"
-msgstr ""
+msgstr "Kann nicht gelöscht werden, da Artikel versandt wurden"
#: templates/js/translated/order.js:2324
msgid "Cannot be deleted as items have been allocated"
-msgstr ""
+msgstr "Kann nicht gelöscht werden, da Artikel zugewiesen sind"
#: templates/js/translated/order.js:2382
msgid "Allocate Serial Numbers"
@@ -8380,150 +8474,154 @@ msgstr "Teil bearbeiten"
msgid "Part edited"
msgstr "Teil bearbeitet"
-#: templates/js/translated/part.js:412
+#: templates/js/translated/part.js:351
+msgid "Create Part Variant"
+msgstr "Teil-Variante anlegen"
+
+#: templates/js/translated/part.js:418
msgid "You are subscribed to notifications for this item"
msgstr "Sie haben Benachrichtigungen für dieses Teil abonniert"
-#: templates/js/translated/part.js:414
+#: templates/js/translated/part.js:420
msgid "You have subscribed to notifications for this item"
msgstr "Sie haben Benachrichtigungen für dieses Teil abonniert"
-#: templates/js/translated/part.js:419
+#: templates/js/translated/part.js:425
msgid "Subscribe to notifications for this item"
msgstr "Benachrichtigungen für dieses Teil abonnieren"
-#: templates/js/translated/part.js:421
+#: templates/js/translated/part.js:427
msgid "You have unsubscribed to notifications for this item"
msgstr "Sie haben Benachrichtigungen für dieses Teil abgemeldet"
-#: templates/js/translated/part.js:438
+#: templates/js/translated/part.js:444
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:448
+#: templates/js/translated/part.js:454
msgid "Validate Bill of Materials"
-msgstr ""
+msgstr "Stückliste prüfen"
-#: templates/js/translated/part.js:451
+#: templates/js/translated/part.js:457
msgid "Validated Bill of Materials"
msgstr "überprüfte Stückliste"
-#: templates/js/translated/part.js:475
+#: templates/js/translated/part.js:481
msgid "Copy Bill of Materials"
-msgstr ""
+msgstr "Stückliste kopieren"
-#: templates/js/translated/part.js:503 templates/js/translated/part.js:588
+#: templates/js/translated/part.js:509 templates/js/translated/part.js:594
msgid "Trackable part"
msgstr "Nachverfolgbares Teil"
-#: templates/js/translated/part.js:507 templates/js/translated/part.js:592
+#: templates/js/translated/part.js:513 templates/js/translated/part.js:598
msgid "Virtual part"
msgstr "virtuelles Teil"
-#: templates/js/translated/part.js:519
+#: templates/js/translated/part.js:525
msgid "Subscribed part"
msgstr "Abonnierter Teil"
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:529
msgid "Salable part"
msgstr "Verkäufliches Teil"
-#: templates/js/translated/part.js:638
+#: templates/js/translated/part.js:644
msgid "No variants found"
msgstr "Keine Varianten gefunden"
-#: templates/js/translated/part.js:1005
+#: templates/js/translated/part.js:1012
msgid "Delete part relationship"
msgstr "Teile-Beziehung löschen"
-#: templates/js/translated/part.js:1029
+#: templates/js/translated/part.js:1036
msgid "Delete Part Relationship"
msgstr "Teile-Beziehung löschen"
-#: templates/js/translated/part.js:1096 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:1363
msgid "No parts found"
msgstr "Keine Teile gefunden"
-#: templates/js/translated/part.js:1266
+#: templates/js/translated/part.js:1273
msgid "No category"
msgstr "Keine Kategorie"
-#: templates/js/translated/part.js:1289
+#: templates/js/translated/part.js:1296
#: templates/js/translated/table_filters.js:430
msgid "Low stock"
msgstr "Bestand niedrig"
-#: templates/js/translated/part.js:1380 templates/js/translated/part.js:1552
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559
+#: templates/js/translated/stock.js:2440
msgid "Display as list"
msgstr "Listenansicht"
-#: templates/js/translated/part.js:1396
+#: templates/js/translated/part.js:1403
msgid "Display as grid"
msgstr "Rasteransicht"
-#: templates/js/translated/part.js:1571 templates/js/translated/stock.js:2301
+#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2459
msgid "Display as tree"
msgstr "Baumansicht"
-#: templates/js/translated/part.js:1635
+#: templates/js/translated/part.js:1642
msgid "Subscribed category"
msgstr "Abonnierte Kategorie"
-#: templates/js/translated/part.js:1649 templates/js/translated/stock.js:2345
+#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2503
msgid "Path"
msgstr "Pfad"
-#: templates/js/translated/part.js:1693
+#: templates/js/translated/part.js:1700
msgid "No test templates matching query"
msgstr "Keine zur Anfrage passenden Testvorlagen"
-#: templates/js/translated/part.js:1744 templates/js/translated/stock.js:1234
+#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1242
msgid "Edit test result"
msgstr "Testergebnis bearbeiten"
-#: templates/js/translated/part.js:1745 templates/js/translated/stock.js:1235
+#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1243
msgid "Delete test result"
msgstr "Testergebnis löschen"
-#: templates/js/translated/part.js:1751
+#: templates/js/translated/part.js:1758
msgid "This test is defined for a parent part"
msgstr "Dieses Testergebnis ist für ein Hauptteil"
-#: templates/js/translated/part.js:1773
+#: templates/js/translated/part.js:1780
msgid "Edit Test Result Template"
msgstr "Testergebnis-Vorlage bearbeiten"
-#: templates/js/translated/part.js:1787
+#: templates/js/translated/part.js:1794
msgid "Delete Test Result Template"
msgstr "Testergebnis-Vorlage löschen"
-#: templates/js/translated/part.js:1812
+#: templates/js/translated/part.js:1819
#, python-brace-format
msgid "No ${human_name} information found"
msgstr "Keine ${human_name} Informationen gefunden"
-#: templates/js/translated/part.js:1867
+#: templates/js/translated/part.js:1874
#, python-brace-format
msgid "Edit ${human_name}"
msgstr "${human_name} bearbeiten"
-#: templates/js/translated/part.js:1868
+#: templates/js/translated/part.js:1875
#, python-brace-format
msgid "Delete ${human_name}"
msgstr "${human_name} löschen"
-#: templates/js/translated/part.js:1969
+#: templates/js/translated/part.js:1976
msgid "Single Price"
msgstr "Einzelpreis"
-#: templates/js/translated/part.js:1988
+#: templates/js/translated/part.js:1995
msgid "Single Price Difference"
msgstr "Einzelpreisdifferenz"
#: templates/js/translated/plugin.js:22
msgid "The Plugin was installed"
-msgstr ""
+msgstr "Das Plugin wurde installiert"
#: templates/js/translated/report.js:67
msgid "items selected"
@@ -8591,340 +8689,344 @@ msgstr "Aufträge auswählen"
msgid "Sales Order(s) must be selected before printing report"
msgstr "Auftrag muss vor dem Berichtsdruck ausgewählt werden"
-#: templates/js/translated/stock.js:73
+#: templates/js/translated/stock.js:74
msgid "Serialize Stock Item"
msgstr "Lagerartikel serialisieren"
-#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:173
+#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:181
msgid "Next available serial number"
msgstr "Nächste verfügbare Seriennummer"
-#: templates/js/translated/stock.js:93 templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:94 templates/js/translated/stock.js:183
msgid "Latest serial number"
msgstr "Letzte Seriennummer"
-#: templates/js/translated/stock.js:101
+#: templates/js/translated/stock.js:102
msgid "Confirm Stock Serialization"
msgstr "Lager-Serialisierung bestätigen"
-#: templates/js/translated/stock.js:110
+#: templates/js/translated/stock.js:111
msgid "Parent stock location"
msgstr "Übergeordneter Lagerort"
-#: templates/js/translated/stock.js:146
+#: templates/js/translated/stock.js:154
msgid "New Stock Location"
msgstr "Neuer Lagerstandort"
-#: templates/js/translated/stock.js:186
+#: templates/js/translated/stock.js:194
msgid "This part cannot be serialized"
msgstr "Dieser Teil kann nicht serialisiert werden"
-#: templates/js/translated/stock.js:225
+#: templates/js/translated/stock.js:233
msgid "Enter initial quantity for this stock item"
msgstr "Ausgangsmenge für diesen Lagerartikel eingeben"
-#: templates/js/translated/stock.js:231
+#: templates/js/translated/stock.js:239
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr "Seriennummern für neue Lagerartikel eingeben (oder leer lassen)"
-#: templates/js/translated/stock.js:374
+#: templates/js/translated/stock.js:382
msgid "Created new stock item"
msgstr "Neuer Lagerartikel erstellt"
-#: templates/js/translated/stock.js:387
+#: templates/js/translated/stock.js:395
msgid "Created multiple stock items"
msgstr "Mehrere Lagerartikel erstellt"
-#: templates/js/translated/stock.js:412
+#: templates/js/translated/stock.js:420
msgid "Find Serial Number"
msgstr "Seriennummer finden"
-#: templates/js/translated/stock.js:416 templates/js/translated/stock.js:417
+#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425
msgid "Enter serial number"
msgstr "Seriennummer eingeben"
-#: templates/js/translated/stock.js:433
+#: templates/js/translated/stock.js:441
msgid "Enter a serial number"
msgstr "Eine Seriennummer eingeben"
-#: templates/js/translated/stock.js:453
+#: templates/js/translated/stock.js:461
msgid "No matching serial number"
msgstr "Keine passende Seriennummer"
-#: templates/js/translated/stock.js:462
+#: templates/js/translated/stock.js:470
msgid "More than one matching result found"
msgstr "Mehrere Ergebnisse gefunden"
-#: templates/js/translated/stock.js:507
+#: templates/js/translated/stock.js:515
msgid "Export Stock"
msgstr "Bestand exportieren"
-#: templates/js/translated/stock.js:518
+#: templates/js/translated/stock.js:526
msgid "Include Sublocations"
msgstr "Einschließlich Unterstandorte"
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:527
msgid "Include stock items in sublocations"
msgstr "Lagerartikel in untergeordneten Lagerorten einschließen"
-#: templates/js/translated/stock.js:628
+#: templates/js/translated/stock.js:636
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:629
+#: templates/js/translated/stock.js:637
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:706
+#: templates/js/translated/stock.js:714
msgid "Warning: Merge operation cannot be reversed"
-msgstr ""
+msgstr "Achtung: Das Zusammenführen kann nicht rückgängig gemacht werden"
-#: templates/js/translated/stock.js:707
+#: templates/js/translated/stock.js:715
msgid "Some information will be lost when merging stock items"
-msgstr ""
+msgstr "Einige Informationen gehen verloren, wenn Artikel zusammengeführt werden"
-#: templates/js/translated/stock.js:709
+#: templates/js/translated/stock.js:717
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:710
+#: templates/js/translated/stock.js:718
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:796
+#: templates/js/translated/stock.js:804
msgid "Confirm stock item merge"
-msgstr ""
+msgstr "Zusammenführung der Artikel bestätigen"
-#: templates/js/translated/stock.js:797
+#: templates/js/translated/stock.js:805
msgid "Merge Stock Items"
-msgstr ""
+msgstr "Artikel zusammenführen"
-#: templates/js/translated/stock.js:892
+#: templates/js/translated/stock.js:900
msgid "Transfer Stock"
msgstr "Bestand verschieben"
-#: templates/js/translated/stock.js:893
+#: templates/js/translated/stock.js:901
msgid "Move"
msgstr "Verschieben"
-#: templates/js/translated/stock.js:899
+#: templates/js/translated/stock.js:907
msgid "Count Stock"
msgstr "Bestand zählen"
-#: templates/js/translated/stock.js:900
+#: templates/js/translated/stock.js:908
msgid "Count"
msgstr "Anzahl"
-#: templates/js/translated/stock.js:904
+#: templates/js/translated/stock.js:912
msgid "Remove Stock"
msgstr "Bestand entfernen"
-#: templates/js/translated/stock.js:905
+#: templates/js/translated/stock.js:913
msgid "Take"
msgstr "Entfernen"
-#: templates/js/translated/stock.js:909
+#: templates/js/translated/stock.js:917
msgid "Add Stock"
msgstr "Bestand hinzufügen"
-#: templates/js/translated/stock.js:910 users/models.py:206
+#: templates/js/translated/stock.js:918 users/models.py:208
msgid "Add"
msgstr "Hinzufügen"
-#: templates/js/translated/stock.js:914 templates/stock_table.html:58
+#: templates/js/translated/stock.js:922 templates/stock_table.html:58
msgid "Delete Stock"
msgstr "Bestand löschen"
-#: templates/js/translated/stock.js:1003
+#: templates/js/translated/stock.js:1011
msgid "Quantity cannot be adjusted for serialized stock"
msgstr "Menge von serialisiertem Bestand kann nicht bearbeitet werden"
-#: templates/js/translated/stock.js:1003
+#: templates/js/translated/stock.js:1011
msgid "Specify stock quantity"
msgstr "Bestandsanzahl angeben"
-#: templates/js/translated/stock.js:1043
+#: templates/js/translated/stock.js:1051
msgid "You must select at least one available stock item"
msgstr "Sie müssen mindestens einen Lagerartikel auswählen"
-#: templates/js/translated/stock.js:1201
+#: templates/js/translated/stock.js:1209
msgid "PASS"
msgstr "ERFOLGREICH"
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1211
msgid "FAIL"
msgstr "FEHLGESCHLAGEN"
-#: templates/js/translated/stock.js:1208
+#: templates/js/translated/stock.js:1216
msgid "NO RESULT"
msgstr "KEIN ERGEBNIS"
-#: templates/js/translated/stock.js:1230
+#: templates/js/translated/stock.js:1238
msgid "Add test result"
msgstr "Testergebnis hinzufügen"
-#: templates/js/translated/stock.js:1256
+#: templates/js/translated/stock.js:1264
msgid "No test results found"
msgstr "Keine Testergebnisse gefunden"
-#: templates/js/translated/stock.js:1313
+#: templates/js/translated/stock.js:1321
msgid "Test Date"
msgstr "Testdatum"
-#: templates/js/translated/stock.js:1420
+#: templates/js/translated/stock.js:1428
msgid "In production"
msgstr "In Arbeit"
-#: templates/js/translated/stock.js:1424
+#: templates/js/translated/stock.js:1432
msgid "Installed in Stock Item"
msgstr "In Lagerartikel installiert"
-#: templates/js/translated/stock.js:1432
+#: templates/js/translated/stock.js:1440
msgid "Assigned to Sales Order"
msgstr "Auftrag zugewiesen"
-#: templates/js/translated/stock.js:1438
+#: templates/js/translated/stock.js:1446
msgid "No stock location set"
msgstr "Kein Lagerort gesetzt"
-#: templates/js/translated/stock.js:1596
+#: templates/js/translated/stock.js:1604
msgid "Stock item is in production"
msgstr "Lagerartikel wird produziert"
-#: templates/js/translated/stock.js:1601
+#: templates/js/translated/stock.js:1609
msgid "Stock item assigned to sales order"
msgstr "Lagerartikel wurde Auftrag zugewiesen"
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1612
msgid "Stock item assigned to customer"
msgstr "Lagerartikel wurde Kunden zugewiesen"
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/stock.js:1616
msgid "Stock item has expired"
msgstr "Lagerartikel ist abgelaufen"
-#: templates/js/translated/stock.js:1610
+#: templates/js/translated/stock.js:1618
msgid "Stock item will expire soon"
msgstr "Lagerartikel läuft demnächst ab"
-#: templates/js/translated/stock.js:1616
+#: templates/js/translated/stock.js:1624
msgid "Serialized stock item has been allocated"
msgstr "Serialisierter Lagerartikel wurde zugewiesen"
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1626
msgid "Stock item has been fully allocated"
msgstr "Lagerartikel wurde vollständig zugewiesen"
-#: templates/js/translated/stock.js:1620
+#: templates/js/translated/stock.js:1628
msgid "Stock item has been partially allocated"
msgstr "Lagerartikel wurde teilweise zugewiesen"
-#: templates/js/translated/stock.js:1625
+#: templates/js/translated/stock.js:1633
msgid "Stock item has been installed in another item"
msgstr "Lagerartikel in anderem Element verbaut"
-#: templates/js/translated/stock.js:1632
+#: templates/js/translated/stock.js:1640
msgid "Stock item has been rejected"
msgstr "Lagerartikel abgewiesen"
-#: templates/js/translated/stock.js:1634
+#: templates/js/translated/stock.js:1642
msgid "Stock item is lost"
msgstr "Lagerartikel verloren"
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1644
msgid "Stock item is destroyed"
msgstr "Lagerartikel zerstört"
-#: templates/js/translated/stock.js:1640
+#: templates/js/translated/stock.js:1648
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr "gelöscht"
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1698
msgid "Stocktake"
msgstr "Inventur"
-#: templates/js/translated/stock.js:1763
+#: templates/js/translated/stock.js:1771
msgid "Supplier part not specified"
msgstr "Zuliefererteil nicht angegeben"
-#: templates/js/translated/stock.js:1801
+#: templates/js/translated/stock.js:1809
msgid "No stock items matching query"
msgstr "Keine zur Anfrage passenden Lagerartikel"
-#: templates/js/translated/stock.js:1822 templates/js/translated/stock.js:1870
+#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:1878
msgid "items"
msgstr "Teile"
-#: templates/js/translated/stock.js:1910
+#: templates/js/translated/stock.js:1918
msgid "batches"
msgstr "lose"
-#: templates/js/translated/stock.js:1937
+#: templates/js/translated/stock.js:1945
msgid "locations"
msgstr "Lagerorte"
-#: templates/js/translated/stock.js:1939
+#: templates/js/translated/stock.js:1947
msgid "Undefined location"
msgstr "unbekannter Lagerort"
-#: templates/js/translated/stock.js:2138
+#: templates/js/translated/stock.js:2146
msgid "Set Stock Status"
msgstr "Status setzen"
-#: templates/js/translated/stock.js:2152
+#: templates/js/translated/stock.js:2160
msgid "Select Status Code"
msgstr "Status Code setzen"
-#: templates/js/translated/stock.js:2153
+#: templates/js/translated/stock.js:2161
msgid "Status code must be selected"
msgstr "Status Code muss ausgewählt werden"
-#: templates/js/translated/stock.js:2377
+#: templates/js/translated/stock.js:2340
+msgid "Allocated Quantity"
+msgstr ""
+
+#: templates/js/translated/stock.js:2535
msgid "Invalid date"
msgstr "Ungültiges Datum"
-#: templates/js/translated/stock.js:2399
+#: templates/js/translated/stock.js:2557
msgid "Details"
msgstr "Details"
-#: templates/js/translated/stock.js:2424
+#: templates/js/translated/stock.js:2582
msgid "Location no longer exists"
msgstr "Standort nicht mehr vorhanden"
-#: templates/js/translated/stock.js:2443
+#: templates/js/translated/stock.js:2601
msgid "Purchase order no longer exists"
msgstr "Bestellung existiert nicht mehr"
-#: templates/js/translated/stock.js:2462
+#: templates/js/translated/stock.js:2620
msgid "Customer no longer exists"
msgstr "Kunde existiert nicht mehr"
-#: templates/js/translated/stock.js:2480
+#: templates/js/translated/stock.js:2638
msgid "Stock item no longer exists"
msgstr "Lagerartikel existiert nicht mehr"
-#: templates/js/translated/stock.js:2503
+#: templates/js/translated/stock.js:2661
msgid "Added"
msgstr "Hinzugefügt"
-#: templates/js/translated/stock.js:2511
+#: templates/js/translated/stock.js:2669
msgid "Removed"
msgstr "Entfernt"
-#: templates/js/translated/stock.js:2552
+#: templates/js/translated/stock.js:2710
msgid "Edit tracking entry"
msgstr "Tracking-Eintrag bearbeiten"
-#: templates/js/translated/stock.js:2553
+#: templates/js/translated/stock.js:2711
msgid "Delete tracking entry"
msgstr "Tracking-Eintrag löschen"
-#: templates/js/translated/stock.js:2604
+#: templates/js/translated/stock.js:2762
msgid "No installed items"
msgstr "Keine installierten Elemente"
-#: templates/js/translated/stock.js:2655
+#: templates/js/translated/stock.js:2813
msgid "Uninstall Stock Item"
msgstr "Lagerartikel entfernen"
@@ -9141,7 +9243,7 @@ msgstr "Zeilen pro Seite"
#: templates/js/translated/tables.js:376
msgid "Showing all rows"
-msgstr ""
+msgstr "Alle Zeilen anzeigen"
#: templates/js/translated/tables.js:378
msgid "Showing"
@@ -9196,11 +9298,11 @@ msgstr "Kaufen"
msgid "Sell"
msgstr "Verkaufen"
-#: templates/navbar.html:113
+#: templates/navbar.html:114
msgid "Logout"
msgstr "Ausloggen"
-#: templates/navbar.html:115
+#: templates/navbar.html:116
msgid "Login"
msgstr "Einloggen"
@@ -9248,31 +9350,43 @@ msgstr "Docker-Modus"
msgid "Server is deployed using docker"
msgstr "Server wird mit Docker bereitgestellt"
-#: templates/stats.html:40
+#: templates/stats.html:39
+msgid "Plugin Support"
+msgstr "Plugin-Unterstützung"
+
+#: templates/stats.html:43
+msgid "Plugin support enabled"
+msgstr "Plugin-Unterstützung aktiviert"
+
+#: templates/stats.html:45
+msgid "Plugin support disabled"
+msgstr "Plugin-Unterstützung deaktiviert"
+
+#: templates/stats.html:52
msgid "Server status"
msgstr "Serverstatus"
-#: templates/stats.html:43
+#: templates/stats.html:55
msgid "Healthy"
msgstr "Gesund"
-#: templates/stats.html:45
+#: templates/stats.html:57
msgid "Issues detected"
msgstr "Probleme erkannt"
-#: templates/stats.html:52
+#: templates/stats.html:64
msgid "Background Worker"
msgstr "Hintergrund-Prozess"
-#: templates/stats.html:55
+#: templates/stats.html:67
msgid "Background worker not running"
msgstr "Hintergrund-Prozess läuft nicht"
-#: templates/stats.html:63
+#: templates/stats.html:75
msgid "Email Settings"
msgstr "E-Mail-Einstellungen"
-#: templates/stats.html:66
+#: templates/stats.html:78
msgid "Email settings not configured"
msgstr "E-Mail-Einstellungen nicht konfiguriert"
@@ -9314,11 +9428,11 @@ msgstr "Bestand verschieben"
#: templates/stock_table.html:52
msgid "Merge selected stock items"
-msgstr ""
+msgstr "Ausgewählte Artikel zusammenführen"
#: templates/stock_table.html:52
msgid "Merge stock"
-msgstr ""
+msgstr "Bestand zusammenführen"
#: templates/stock_table.html:53
msgid "Order selected items"
@@ -9368,35 +9482,35 @@ msgstr "Berechtigungen"
msgid "Important dates"
msgstr "wichtige Daten"
-#: users/models.py:193
+#: users/models.py:195
msgid "Permission set"
msgstr "Berechtigung geändert"
-#: users/models.py:201
+#: users/models.py:203
msgid "Group"
msgstr "Gruppe"
-#: users/models.py:204
+#: users/models.py:206
msgid "View"
msgstr "Ansicht"
-#: users/models.py:204
+#: users/models.py:206
msgid "Permission to view items"
msgstr "Berechtigung Einträge anzuzeigen"
-#: users/models.py:206
+#: users/models.py:208
msgid "Permission to add items"
msgstr "Berechtigung Einträge zu erstellen"
-#: users/models.py:208
+#: users/models.py:210
msgid "Change"
msgstr "Ändern"
-#: users/models.py:208
+#: users/models.py:210
msgid "Permissions to edit items"
msgstr "Berechtigungen Einträge zu ändern"
-#: users/models.py:210
+#: users/models.py:212
msgid "Permission to delete items"
msgstr "Berechtigung Einträge zu löschen"
diff --git a/InvenTree/locale/el/LC_MESSAGES/django.po b/InvenTree/locale/el/LC_MESSAGES/django.po
index f036c87833..8caeacf059 100644
--- a/InvenTree/locale/el/LC_MESSAGES/django.po
+++ b/InvenTree/locale/el/LC_MESSAGES/django.po
@@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-01-10 03:54+0000\n"
-"PO-Revision-Date: 2022-01-10 03:57\n"
+"POT-Creation-Date: 2022-01-29 00:17+0000\n"
+"PO-Revision-Date: 2022-01-29 01:11\n"
"Last-Translator: \n"
"Language-Team: Greek\n"
"Language: el_GR\n"
@@ -18,15 +18,15 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 138\n"
-#: InvenTree/api.py:64
+#: InvenTree/api.py:55
msgid "API endpoint not found"
msgstr ""
-#: InvenTree/api.py:110
+#: InvenTree/api.py:101
msgid "No action specified"
msgstr ""
-#: InvenTree/api.py:124
+#: InvenTree/api.py:116
msgid "No matching action found"
msgstr ""
@@ -80,41 +80,41 @@ msgstr ""
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:437
+#: InvenTree/helpers.py:439
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:444 order/models.py:279 order/models.py:420
+#: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425
#: stock/views.py:1231
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:447
+#: InvenTree/helpers.py:449
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:469 InvenTree/helpers.py:472 InvenTree/helpers.py:475
-#: InvenTree/helpers.py:500
+#: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477
+#: InvenTree/helpers.py:502
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:510
+#: InvenTree/helpers.py:512
#, python-brace-format
msgid "Invalid group {group}"
msgstr ""
-#: InvenTree/helpers.py:516
+#: InvenTree/helpers.py:518
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:522
+#: InvenTree/helpers.py:524
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:526
+#: InvenTree/helpers.py:528
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
@@ -127,7 +127,7 @@ msgstr ""
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:132 stock/models.py:1967
+#: InvenTree/models.py:132 stock/models.py:1995
#: templates/js/translated/attachment.js:119
msgid "Attachment"
msgstr ""
@@ -137,15 +137,15 @@ msgid "Select file to attach"
msgstr ""
#: InvenTree/models.py:139 company/models.py:131 company/models.py:348
-#: company/models.py:564 order/models.py:124 part/models.py:828
+#: company/models.py:564 order/models.py:127 part/models.py:830
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1317
+#: templates/js/translated/company.js:829 templates/js/translated/part.js:1324
msgid "Link"
msgstr ""
-#: InvenTree/models.py:140 build/models.py:330 part/models.py:829
-#: stock/models.py:527
+#: InvenTree/models.py:140 build/models.py:332 part/models.py:831
+#: stock/models.py:529
msgid "Link to external URL"
msgstr ""
@@ -157,10 +157,11 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213
-#: common/models.py:1214 part/models.py:2258 part/models.py:2278
+#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1223
+#: common/models.py:1224 common/models.py:1452 common/models.py:1453
+#: part/models.py:2265 part/models.py:2285
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2534
+#: templates/js/translated/stock.js:2692
msgid "User"
msgstr ""
@@ -197,42 +198,42 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:277 InvenTree/models.py:278 company/models.py:415
-#: label/models.py:112 part/models.py:772 part/models.py:2442
-#: plugin/models.py:40 report/models.py:181
+#: InvenTree/models.py:277 InvenTree/models.py:278 common/models.py:1438
+#: company/models.py:415 label/models.py:112 part/models.py:774
+#: part/models.py:2449 plugin/models.py:40 report/models.py:181
#: templates/InvenTree/settings/mixins/urls.html:13
-#: templates/InvenTree/settings/plugin.html:47
-#: templates/InvenTree/settings/plugin.html:124
+#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin.html:125
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:279
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:561
-#: templates/js/translated/part.js:700 templates/js/translated/part.js:1624
-#: templates/js/translated/stock.js:2327
+#: templates/InvenTree/settings/settings.html:282
+#: templates/js/translated/company.js:641 templates/js/translated/part.js:567
+#: templates/js/translated/part.js:706 templates/js/translated/part.js:1631
+#: templates/js/translated/stock.js:2485
msgid "Name"
msgstr ""
-#: InvenTree/models.py:284 build/models.py:207
+#: InvenTree/models.py:284 build/models.py:209
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:73 label/models.py:119
-#: order/models.py:122 part/models.py:795 part/templates/part/category.html:74
+#: order/models.py:125 part/models.py:797 part/templates/part/category.html:74
#: part/templates/part/part_base.html:163
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:93
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:327 templates/js/translated/bom.js:540
+#: templates/js/translated/bom.js:339 templates/js/translated/bom.js:552
#: templates/js/translated/build.js:1682 templates/js/translated/company.js:345
#: templates/js/translated/company.js:551
#: templates/js/translated/company.js:840 templates/js/translated/order.js:836
#: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258
-#: templates/js/translated/part.js:620 templates/js/translated/part.js:992
-#: templates/js/translated/part.js:1077 templates/js/translated/part.js:1247
-#: templates/js/translated/part.js:1643 templates/js/translated/part.js:1712
-#: templates/js/translated/stock.js:1569 templates/js/translated/stock.js:2339
-#: templates/js/translated/stock.js:2384
+#: templates/js/translated/part.js:626 templates/js/translated/part.js:999
+#: templates/js/translated/part.js:1084 templates/js/translated/part.js:1254
+#: templates/js/translated/part.js:1650 templates/js/translated/part.js:1719
+#: templates/js/translated/stock.js:1577 templates/js/translated/stock.js:2314
+#: templates/js/translated/stock.js:2497 templates/js/translated/stock.js:2542
msgid "Description"
msgstr ""
@@ -244,7 +245,7 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:65 part/models.py:2727
+#: InvenTree/serializers.py:65 part/models.py:2734
msgid "Must be a valid number"
msgstr ""
@@ -252,83 +253,83 @@ msgstr ""
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:661
msgid "German"
msgstr ""
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:662
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:663
msgid "English"
msgstr ""
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:664
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:665
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:666
msgid "French"
msgstr ""
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:667
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:668
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:669
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:670
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:671
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:672
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:673
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:674
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:675
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:676
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:677
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:678
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:679
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:680
msgid "Chinese"
msgstr ""
@@ -374,7 +375,7 @@ msgstr ""
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:143 order/models.py:941
+#: InvenTree/status_codes.py:143 order/models.py:961
#: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255
msgid "Shipped"
msgstr ""
@@ -455,7 +456,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2064
+#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2072
msgid "Merged stock items"
msgstr ""
@@ -543,56 +544,56 @@ msgstr ""
msgid "System Information"
msgstr ""
-#: barcodes/api.py:54 barcodes/api.py:151
+#: barcodes/api.py:54 barcodes/api.py:152
msgid "Must provide barcode_data parameter"
msgstr ""
-#: barcodes/api.py:127
+#: barcodes/api.py:128
msgid "No match found for barcode data"
msgstr ""
-#: barcodes/api.py:129
+#: barcodes/api.py:130
msgid "Match found for barcode data"
msgstr ""
-#: barcodes/api.py:154
+#: barcodes/api.py:155
msgid "Must provide stockitem parameter"
msgstr ""
-#: barcodes/api.py:161
+#: barcodes/api.py:162
msgid "No matching stock item found"
msgstr ""
-#: barcodes/api.py:191
+#: barcodes/api.py:193
msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:195
+#: barcodes/api.py:197
msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:199
+#: barcodes/api.py:201
msgid "Barcode already matches Part"
msgstr ""
-#: barcodes/api.py:205 barcodes/api.py:217
+#: barcodes/api.py:207 barcodes/api.py:219
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:223
+#: barcodes/api.py:225
msgid "Barcode associated with Stock Item"
msgstr ""
-#: build/forms.py:36 build/models.py:1286
+#: build/forms.py:36 build/models.py:1293
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:35 common/models.py:1253
+#: build/templates/build/detail.html:35 common/models.py:1263
#: company/forms.py:42 company/templates/company/supplier_part.html:251
-#: order/models.py:796 order/models.py:1207 order/serializers.py:810
+#: order/models.py:805 order/models.py:1229 order/serializers.py:816
#: order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:145
-#: part/forms.py:161 part/forms.py:177 part/models.py:2629
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144
+#: part/forms.py:160 part/forms.py:176 part/models.py:2636
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:962 part/templates/part/detail.html:1048
+#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -603,7 +604,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:181
#: stock/templates/stock/item_base.html:262
#: stock/templates/stock/item_base.html:270
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:555
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:567
#: templates/js/translated/build.js:295 templates/js/translated/build.js:495
#: templates/js/translated/build.js:689 templates/js/translated/build.js:699
#: templates/js/translated/build.js:1075 templates/js/translated/build.js:1422
@@ -611,11 +612,11 @@ msgstr ""
#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056
#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859
#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036
-#: templates/js/translated/order.js:2150 templates/js/translated/part.js:900
-#: templates/js/translated/part.js:1855 templates/js/translated/part.js:1978
-#: templates/js/translated/part.js:2056 templates/js/translated/stock.js:383
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:750
-#: templates/js/translated/stock.js:2519 templates/js/translated/stock.js:2621
+#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906
+#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985
+#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:391
+#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758
+#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2779
msgid "Quantity"
msgstr ""
@@ -623,9 +624,9 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:41 order/serializers.py:814 stock/forms.py:81
-#: stock/serializers.py:314 templates/js/translated/stock.js:230
-#: templates/js/translated/stock.js:384
+#: build/forms.py:41 order/serializers.py:820 stock/forms.py:81
+#: stock/serializers.py:314 templates/js/translated/stock.js:238
+#: templates/js/translated/stock.js:392
msgid "Serial Numbers"
msgstr ""
@@ -649,18 +650,18 @@ msgstr ""
msgid "Confirm build cancellation"
msgstr ""
-#: build/models.py:133
+#: build/models.py:135
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:139 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:457
+#: templates/js/translated/build.js:457 templates/js/translated/stock.js:2290
msgid "Build Order"
msgstr ""
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:140 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:92
#: order/templates/order/so_sidebar.html:13
@@ -670,40 +671,40 @@ msgstr ""
msgid "Build Orders"
msgstr ""
-#: build/models.py:198
+#: build/models.py:200
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:210 order/models.py:536
-#: order/models.py:803 part/models.py:2638
+#: build/models.py:201 order/models.py:213 order/models.py:541
+#: order/models.py:812 part/models.py:2645
#: 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/translated/bom.js:547 templates/js/translated/build.js:1179
+#: templates/js/translated/bom.js:559 templates/js/translated/build.js:1179
#: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144
msgid "Reference"
msgstr ""
-#: build/models.py:210
+#: build/models.py:212
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:219 build/templates/build/build_base.html:164
+#: build/models.py:221 build/templates/build/build_base.html:164
#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:222
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:225 build/templates/build/build_base.html:77
+#: build/models.py:227 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
-#: order/models.py:856 order/models.py:930
-#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
-#: part/models.py:2204 part/models.py:2220 part/models.py:2239
-#: part/models.py:2256 part/models.py:2358 part/models.py:2480
-#: part/models.py:2613 part/models.py:2920 part/serializers.py:658
+#: order/models.py:876 order/models.py:950
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359
+#: part/models.py:2211 part/models.py:2227 part/models.py:2246
+#: part/models.py:2263 part/models.py:2365 part/models.py:2487
+#: part/models.py:2620 part/models.py:2927 part/serializers.py:658
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -713,205 +714,205 @@ msgstr ""
#: templates/InvenTree/search.html:80
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
-#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:326
-#: templates/js/translated/bom.js:505 templates/js/translated/build.js:680
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:338
+#: templates/js/translated/bom.js:517 templates/js/translated/build.js:680
#: templates/js/translated/build.js:1048 templates/js/translated/build.js:1419
#: templates/js/translated/build.js:1687 templates/js/translated/company.js:492
#: templates/js/translated/company.js:749 templates/js/translated/order.js:84
#: templates/js/translated/order.js:586 templates/js/translated/order.js:1004
#: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933
-#: templates/js/translated/order.js:2128 templates/js/translated/part.js:977
-#: templates/js/translated/part.js:1058 templates/js/translated/part.js:1225
-#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:719
-#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1526
-#: templates/js/translated/stock.js:2609
+#: templates/js/translated/order.js:2128 templates/js/translated/part.js:984
+#: templates/js/translated/part.js:1065 templates/js/translated/part.js:1232
+#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727
+#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1534
+#: templates/js/translated/stock.js:2767
msgid "Part"
msgstr ""
-#: build/models.py:233
+#: build/models.py:235
msgid "Select part to build"
msgstr ""
-#: build/models.py:238
+#: build/models.py:240
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:242
+#: build/models.py:244
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 templates/js/translated/build.js:1407
+#: build/models.py:249 templates/js/translated/build.js:1407
#: templates/js/translated/order.js:1564
msgid "Source Location"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:256
+#: build/models.py:258
msgid "Destination Location"
msgstr ""
-#: build/models.py:260
+#: build/models.py:262
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:264
+#: build/models.py:266
msgid "Build Quantity"
msgstr ""
-#: build/models.py:267
+#: build/models.py:269
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:271
+#: build/models.py:273
msgid "Completed items"
msgstr ""
-#: build/models.py:273
+#: build/models.py:275
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:277 part/templates/part/part_base.html:234
+#: build/models.py:279 part/templates/part/part_base.html:234
msgid "Build Status"
msgstr ""
-#: build/models.py:281
+#: build/models.py:283
msgid "Build status code"
msgstr ""
-#: build/models.py:285 stock/models.py:531
+#: build/models.py:287 stock/models.py:533
msgid "Batch Code"
msgstr ""
-#: build/models.py:289
+#: build/models.py:291
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:126 part/models.py:967
+#: build/models.py:294 order/models.py:129 part/models.py:969
#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:558
+#: build/models.py:298 order/models.py:563
msgid "Target completion date"
msgstr ""
-#: build/models.py:297
+#: build/models.py:299
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:252
+#: build/models.py:302 order/models.py:255
#: templates/js/translated/build.js:1758
msgid "Completion Date"
msgstr ""
-#: build/models.py:306
+#: build/models.py:308
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:1729
+#: build/models.py:316 templates/js/translated/build.js:1729
msgid "Issued by"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:323 build/templates/build/build_base.html:185
-#: build/templates/build/detail.html:116 order/models.py:140
+#: build/models.py:325 build/templates/build/build_base.html:185
+#: build/templates/build/detail.html:116 order/models.py:143
#: order/templates/order/order_base.html:170
-#: order/templates/order/sales_order_base.html:182 part/models.py:971
+#: order/templates/order/sales_order_base.html:182 part/models.py:973
#: report/templates/report/inventree_build_order_base.html:159
#: templates/js/translated/build.js:1741 templates/js/translated/order.js:864
msgid "Responsible"
msgstr ""
-#: build/models.py:324
+#: build/models.py:326
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:329 build/templates/build/detail.html:102
+#: build/models.py:331 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:525
+#: part/templates/part/part_base.html:354 stock/models.py:527
#: stock/templates/stock/item_base.html:373
msgid "External Link"
msgstr ""
-#: build/models.py:334 build/serializers.py:201
+#: build/models.py:336 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
-#: order/models.py:144 order/models.py:805 order/models.py:1051
+#: order/models.py:147 order/models.py:814 order/models.py:1071
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:17 part/models.py:956
-#: part/templates/part/detail.html:120 part/templates/part/part_sidebar.html:50
+#: order/templates/order/so_sidebar.html:17 part/models.py:958
+#: part/templates/part/detail.html:137 part/templates/part/part_sidebar.html:54
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:597
-#: stock/models.py:1867 stock/models.py:1973 stock/serializers.py:332
-#: stock/serializers.py:639 stock/serializers.py:737 stock/serializers.py:869
-#: stock/templates/stock/stock_sidebar.html:21
-#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:711
+#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:599
+#: stock/models.py:1895 stock/models.py:2001 stock/serializers.py:332
+#: stock/serializers.py:640 stock/serializers.py:738 stock/serializers.py:870
+#: stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:723
#: templates/js/translated/company.js:845 templates/js/translated/order.js:1149
#: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280
-#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1795
+#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1803
msgid "Notes"
msgstr ""
-#: build/models.py:335
+#: build/models.py:337
msgid "Extra build notes"
msgstr ""
-#: build/models.py:710
+#: build/models.py:717
msgid "No build output specified"
msgstr ""
-#: build/models.py:713
+#: build/models.py:720
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:716
+#: build/models.py:723
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1108
+#: build/models.py:1115
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1117
+#: build/models.py:1124
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1127
+#: build/models.py:1134
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1133 order/models.py:1167
+#: build/models.py:1140 order/models.py:1189
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1139
+#: build/models.py:1146
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1196
+#: build/models.py:1203
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1256 stock/templates/stock/item_base.html:345
+#: build/models.py:1263 stock/templates/stock/item_base.html:345
#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1660
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1257
+#: build/models.py:1264
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1273 build/serializers.py:388 order/serializers.py:690
-#: order/serializers.py:708 stock/serializers.py:577 stock/serializers.py:695
+#: build/models.py:1280 build/serializers.py:388 order/serializers.py:696
+#: order/serializers.py:714 stock/serializers.py:578 stock/serializers.py:696
#: stock/templates/stock/item_base.html:9
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:367
@@ -920,24 +921,24 @@ msgstr ""
#: templates/js/translated/order.js:85 templates/js/translated/order.js:1577
#: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837
#: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030
-#: templates/js/translated/stock.js:555 templates/js/translated/stock.js:720
-#: templates/js/translated/stock.js:2470
+#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728
+#: templates/js/translated/stock.js:2628
msgid "Stock Item"
msgstr ""
-#: build/models.py:1274
+#: build/models.py:1281
msgid "Source stock item"
msgstr ""
-#: build/models.py:1287
+#: build/models.py:1294
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1295
+#: build/models.py:1302
msgid "Install into"
msgstr ""
-#: build/models.py:1296
+#: build/models.py:1303
msgid "Destination stock item"
msgstr ""
@@ -962,16 +963,16 @@ msgid "This build output is not fully allocated"
msgstr ""
#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294
-#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:730
-#: stock/serializers.py:971 stock/templates/stock/item_base.html:313
+#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:731
+#: stock/serializers.py:972 stock/templates/stock/item_base.html:313
#: templates/js/translated/barcode.js:384
#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:480
#: templates/js/translated/build.js:1087 templates/js/translated/order.js:508
#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955
#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044
-#: templates/js/translated/part.js:179 templates/js/translated/stock.js:556
-#: templates/js/translated/stock.js:721 templates/js/translated/stock.js:928
-#: templates/js/translated/stock.js:1676 templates/js/translated/stock.js:2411
+#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564
+#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936
+#: templates/js/translated/stock.js:1684 templates/js/translated/stock.js:2569
msgid "Location"
msgstr ""
@@ -980,12 +981,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:137
-#: build/templates/build/detail.html:63 order/models.py:552
+#: build/templates/build/detail.html:63 order/models.py:557
#: order/serializers.py:247 stock/templates/stock/item_base.html:187
#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1716
#: templates/js/translated/order.js:591 templates/js/translated/order.js:840
-#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1651
-#: templates/js/translated/stock.js:2488 templates/js/translated/stock.js:2637
+#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:2646 templates/js/translated/stock.js:2795
msgid "Status"
msgstr ""
@@ -1021,8 +1022,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:313 build/serializers.py:362 part/models.py:2753
-#: part/models.py:2912
+#: build/serializers.py:313 build/serializers.py:362 part/models.py:2760
+#: part/models.py:2919
msgid "BOM Item"
msgstr ""
@@ -1038,16 +1039,16 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:394 stock/serializers.py:584
+#: build/serializers.py:394 stock/serializers.py:585
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:408 order/models.py:277 order/serializers.py:240
-#: stock/models.py:365 stock/models.py:1077 stock/serializers.py:305
+#: build/serializers.py:408 order/models.py:280 order/serializers.py:240
+#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:450 order/serializers.py:741
+#: build/serializers.py:450 order/serializers.py:747
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1060,7 +1061,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:491 order/serializers.py:984
+#: build/serializers.py:491 order/serializers.py:990
msgid "Allocation items must be provided"
msgstr ""
@@ -1164,13 +1165,13 @@ msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:171
-#: build/templates/build/detail.html:95 order/models.py:927
-#: order/models.py:1023 order/templates/order/sales_order_base.html:9
+#: build/templates/build/detail.html:95 order/models.py:947
+#: order/models.py:1043 order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/order.js:1218
+#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2304
msgid "Sales Order"
msgstr ""
@@ -1224,7 +1225,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:50 order/models.py:878 stock/forms.py:136
+#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:136
#: templates/js/translated/order.js:592 templates/js/translated/order.js:1138
msgid "Destination"
msgstr ""
@@ -1239,7 +1240,7 @@ msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:331
-#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2644
+#: templates/js/translated/stock.js:1673 templates/js/translated/stock.js:2802
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:238
msgid "Batch"
@@ -1343,9 +1344,9 @@ msgstr ""
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:107
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:196
-#: part/templates/part/part_sidebar.html:48 stock/templates/stock/item.html:95
-#: stock/templates/stock/stock_sidebar.html:19
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:213
+#: part/templates/part/part_sidebar.html:52 stock/templates/stock/item.html:112
+#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr ""
@@ -1360,8 +1361,8 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:108
#: order/templates/order/sales_order_detail.html:127
#: order/templates/order/sales_order_detail.html:186
-#: part/templates/part/detail.html:124 stock/templates/stock/item.html:115
-#: stock/templates/stock/item.html:205
+#: part/templates/part/detail.html:141 stock/templates/stock/item.html:132
+#: stock/templates/stock/item.html:235
msgid "Edit Notes"
msgstr ""
@@ -1373,7 +1374,7 @@ msgstr ""
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:303
+#: build/templates/build/index.html:18 part/templates/part/detail.html:320
msgid "New Build Order"
msgstr ""
@@ -1453,23 +1454,23 @@ msgstr ""
msgid "Delete Build Order"
msgstr ""
-#: common/files.py:67
+#: common/files.py:65
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
-#: common/files.py:69
+#: common/files.py:67
msgid "Error reading file (invalid encoding)"
msgstr ""
-#: common/files.py:74
+#: common/files.py:72
msgid "Error reading file (invalid format)"
msgstr ""
-#: common/files.py:76
+#: common/files.py:74
msgid "Error reading file (incorrect dimension)"
msgstr ""
-#: common/files.py:78
+#: common/files.py:76
msgid "Error reading file (data could be corrupted)"
msgstr ""
@@ -1490,740 +1491,828 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:344 common/models.py:998 common/models.py:1206
-msgid "Settings key (must be unique - case insensitive"
+#: common/models.py:352
+msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:346
+#: common/models.py:354
msgid "Settings value"
msgstr ""
-#: common/models.py:380
+#: common/models.py:388
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:400
+#: common/models.py:408
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:411
+#: common/models.py:419
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:434
+#: common/models.py:442
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:553
+#: common/models.py:561
msgid "No group"
msgstr ""
-#: common/models.py:595
+#: common/models.py:603
msgid "Restart required"
msgstr ""
-#: common/models.py:596
+#: common/models.py:604
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:603
+#: common/models.py:611
msgid "InvenTree Instance Name"
msgstr ""
-#: common/models.py:605
+#: common/models.py:613
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:609
+#: common/models.py:617
msgid "Use instance name"
msgstr ""
-#: common/models.py:610
+#: common/models.py:618
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:616 company/models.py:100 company/models.py:101
+#: common/models.py:624 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr ""
-#: common/models.py:617
+#: common/models.py:625
msgid "Internal company name"
msgstr ""
-#: common/models.py:622
+#: common/models.py:630
msgid "Base URL"
msgstr ""
-#: common/models.py:623
+#: common/models.py:631
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:629
+#: common/models.py:637
msgid "Default Currency"
msgstr ""
-#: common/models.py:630
+#: common/models.py:638
msgid "Default currency"
msgstr ""
-#: common/models.py:636
+#: common/models.py:644
msgid "Download from URL"
msgstr ""
-#: common/models.py:637
+#: common/models.py:645
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:643 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:651 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
-#: common/models.py:644
+#: common/models.py:652
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:650
+#: common/models.py:658
msgid "IPN Regex"
msgstr ""
-#: common/models.py:651
+#: common/models.py:659
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:655
+#: common/models.py:663
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:656
+#: common/models.py:664
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:662
+#: common/models.py:670
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:663
+#: common/models.py:671
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:669
+#: common/models.py:677
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:670
+#: common/models.py:678
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:676
+#: common/models.py:684
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:677
+#: common/models.py:685
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:683
+#: common/models.py:691
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:684
+#: common/models.py:692
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:690
+#: common/models.py:698
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:691
+#: common/models.py:699
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:697 part/models.py:2482 report/models.py:187
+#: common/models.py:705 part/models.py:2489 report/models.py:187
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:422
msgid "Template"
msgstr ""
-#: common/models.py:698
+#: common/models.py:706
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:704 part/models.py:919 templates/js/translated/bom.js:1068
+#: common/models.py:712 part/models.py:921 templates/js/translated/bom.js:1082
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:434
msgid "Assembly"
msgstr ""
-#: common/models.py:705
+#: common/models.py:713
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:711 part/models.py:925
+#: common/models.py:719 part/models.py:927
#: templates/js/translated/table_filters.js:438
msgid "Component"
msgstr ""
-#: common/models.py:712
+#: common/models.py:720
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:718 part/models.py:936
+#: common/models.py:726 part/models.py:938
msgid "Purchaseable"
msgstr ""
-#: common/models.py:719
+#: common/models.py:727
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:725 part/models.py:941
+#: common/models.py:733 part/models.py:943
#: templates/js/translated/table_filters.js:446
msgid "Salable"
msgstr ""
-#: common/models.py:726
+#: common/models.py:734
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:732 part/models.py:931
+#: common/models.py:740 part/models.py:933
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
#: templates/js/translated/table_filters.js:450
msgid "Trackable"
msgstr ""
-#: common/models.py:733
+#: common/models.py:741
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:739 part/models.py:951
+#: common/models.py:747 part/models.py:953
#: part/templates/part/part_base.html:147
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr ""
-#: common/models.py:740
+#: common/models.py:748
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:746
+#: common/models.py:754
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:747
+#: common/models.py:755
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:753
+#: common/models.py:761
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:754
+#: common/models.py:762
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:765
+#: common/models.py:773
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:766
+#: common/models.py:774
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:772
+#: common/models.py:780
msgid "Show related parts"
msgstr ""
-#: common/models.py:773
+#: common/models.py:781
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:779
+#: common/models.py:787
msgid "Create initial stock"
msgstr ""
-#: common/models.py:780
+#: common/models.py:788
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:786
+#: common/models.py:794
msgid "Internal Prices"
msgstr ""
-#: common/models.py:787
+#: common/models.py:795
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:793
+#: common/models.py:801
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:794
+#: common/models.py:802
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:800
+#: common/models.py:808
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:801
+#: common/models.py:809
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:808
+#: common/models.py:816
msgid "Enable Reports"
msgstr ""
-#: common/models.py:809
+#: common/models.py:817
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:815 templates/stats.html:25
+#: common/models.py:823 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:816
+#: common/models.py:824
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:822
+#: common/models.py:830
msgid "Page Size"
msgstr ""
-#: common/models.py:823
+#: common/models.py:831
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:833
+#: common/models.py:841
msgid "Test Reports"
msgstr ""
-#: common/models.py:834
+#: common/models.py:842
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:840
+#: common/models.py:848
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:841
+#: common/models.py:849
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:847
+#: common/models.py:855
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:848
+#: common/models.py:856
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:854
+#: common/models.py:862
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:855
+#: common/models.py:863
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:857
+#: common/models.py:865
msgid "days"
msgstr ""
-#: common/models.py:862
+#: common/models.py:870
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:863
+#: common/models.py:871
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:869
+#: common/models.py:877
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:870
+#: common/models.py:878
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:876
-msgid "Group by Part"
-msgstr ""
-
-#: common/models.py:877
-msgid "Group stock items by part reference in table views"
-msgstr ""
-
-#: common/models.py:883
+#: common/models.py:884
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:884
+#: common/models.py:885
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:889
+#: common/models.py:890
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:890
+#: common/models.py:891
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:894
+#: common/models.py:895
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:895
+#: common/models.py:896
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:900
+#: common/models.py:901
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:901
+#: common/models.py:902
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:907
+#: common/models.py:908
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:908
+#: common/models.py:909
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:913
+#: common/models.py:914
msgid "Enable registration"
msgstr ""
-#: common/models.py:914
+#: common/models.py:915
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:919
+#: common/models.py:920
msgid "Enable SSO"
msgstr ""
-#: common/models.py:920
+#: common/models.py:921
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:925
+#: common/models.py:926
msgid "Email required"
msgstr ""
-#: common/models.py:926
+#: common/models.py:927
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:931
+#: common/models.py:932
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:932
+#: common/models.py:933
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:937
+#: common/models.py:938
msgid "Mail twice"
msgstr ""
-#: common/models.py:938
+#: common/models.py:939
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:943
+#: common/models.py:944
msgid "Password twice"
msgstr ""
-#: common/models.py:944
+#: common/models.py:945
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:949
+#: common/models.py:950
msgid "Group on signup"
msgstr ""
-#: common/models.py:950
+#: common/models.py:951
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:955
+#: common/models.py:956
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:956
+#: common/models.py:957
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:961
+#: common/models.py:964
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:962
+#: common/models.py:965
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:968
+#: common/models.py:971
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:969
+#: common/models.py:972
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:975
+#: common/models.py:978
msgid "Enable app integration"
msgstr ""
-#: common/models.py:976
+#: common/models.py:979
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:982
+#: common/models.py:985
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:983
+#: common/models.py:986
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1029
+#: common/models.py:992
+msgid "Enable event integration"
+msgstr ""
+
+#: common/models.py:993
+msgid "Enable plugins to respond to internal events"
+msgstr ""
+
+#: common/models.py:1008 common/models.py:1216
+msgid "Settings key (must be unique - case insensitive"
+msgstr ""
+
+#: common/models.py:1039
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1030
+#: common/models.py:1040
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1035
+#: common/models.py:1045
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1036
+#: common/models.py:1046
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1041
+#: common/models.py:1051
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1042
+#: common/models.py:1052
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1047
+#: common/models.py:1057
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1048
+#: common/models.py:1058
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1054
+#: common/models.py:1064
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1055
+#: common/models.py:1065
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1070
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1061
+#: common/models.py:1071
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1066
+#: common/models.py:1076
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1067
+#: common/models.py:1077
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1072
+#: common/models.py:1082
msgid "Show low stock"
msgstr ""
-#: common/models.py:1073
+#: common/models.py:1083
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1078
+#: common/models.py:1088
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1079
+#: common/models.py:1089
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1084
+#: common/models.py:1094
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1085
+#: common/models.py:1095
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1090
+#: common/models.py:1100
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1091
+#: common/models.py:1101
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1096
+#: common/models.py:1106
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1097
+#: common/models.py:1107
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1102
+#: common/models.py:1112
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1103
+#: common/models.py:1113
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1108
+#: common/models.py:1118
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1109
+#: common/models.py:1119
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1114
+#: common/models.py:1124
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1115
+#: common/models.py:1125
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1120
+#: common/models.py:1130
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1121
+#: common/models.py:1131
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1136
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1127
+#: common/models.py:1137
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1142
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1143
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1149
msgid "Inline label display"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1150
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1156
msgid "Inline report display"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1157
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1163
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1164
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1170
msgid "Search Show Stock"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1171
msgid "Display stock levels in search preview window"
msgstr ""
-#: common/models.py:1167
+#: common/models.py:1177
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1178
msgid "Hide inactive parts in search preview window"
msgstr ""
-#: common/models.py:1174
+#: common/models.py:1184
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1175
+#: common/models.py:1185
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1181
+#: common/models.py:1191
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1182
+#: common/models.py:1192
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1188
+#: common/models.py:1198
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1199
msgid "InvenTree navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1254 company/forms.py:43
+#: common/models.py:1264 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1261 company/serializers.py:264
+#: common/models.py:1271 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:909 templates/js/translated/part.js:1860
+#: templates/js/translated/part.js:915 templates/js/translated/part.js:1867
msgid "Price"
msgstr ""
-#: common/models.py:1262
+#: common/models.py:1272
msgid "Unit price at specified quantity"
msgstr ""
+#: common/models.py:1429 common/models.py:1568
+msgid "Endpoint"
+msgstr ""
+
+#: common/models.py:1430
+msgid "Endpoint at which this webhook is received"
+msgstr ""
+
+#: common/models.py:1439
+msgid "Name for this webhook"
+msgstr ""
+
+#: common/models.py:1444 part/models.py:948 plugin/models.py:46
+#: templates/js/translated/table_filters.js:34
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:295
+#: templates/js/translated/table_filters.js:417
+msgid "Active"
+msgstr ""
+
+#: common/models.py:1445
+msgid "Is this webhook active"
+msgstr ""
+
+#: common/models.py:1459
+msgid "Token"
+msgstr ""
+
+#: common/models.py:1460
+msgid "Token for access"
+msgstr ""
+
+#: common/models.py:1467
+msgid "Secret"
+msgstr ""
+
+#: common/models.py:1468
+msgid "Shared secret for HMAC"
+msgstr ""
+
+#: common/models.py:1535
+msgid "Message ID"
+msgstr ""
+
+#: common/models.py:1536
+msgid "Unique identifier for this message"
+msgstr ""
+
+#: common/models.py:1544
+msgid "Host"
+msgstr ""
+
+#: common/models.py:1545
+msgid "Host from which this message was received"
+msgstr ""
+
+#: common/models.py:1552
+msgid "Header"
+msgstr ""
+
+#: common/models.py:1553
+msgid "Header of this message"
+msgstr ""
+
+#: common/models.py:1559
+msgid "Body"
+msgstr ""
+
+#: common/models.py:1560
+msgid "Body of this message"
+msgstr ""
+
+#: common/models.py:1569
+msgid "Endpoint on which this message was received"
+msgstr ""
+
+#: common/models.py:1574
+msgid "Worked on"
+msgstr ""
+
+#: common/models.py:1575
+msgid "Was the work on this message finished?"
+msgstr ""
+
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
#: part/templates/part/bom_upload/upload_file.html:52
-#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
-#: part/views.py:764
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:213
+#: part/views.py:773
msgid "Upload File"
msgstr ""
#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
-#: part/views.py:765
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:214
+#: part/views.py:774
msgid "Match Fields"
msgstr ""
@@ -2315,7 +2404,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:838
+#: company/models.py:139 part/models.py:840
msgid "Image"
msgstr ""
@@ -2352,8 +2441,8 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:469
-#: stock/templates/stock/item_base.html:142
+#: company/models.py:320 company/models.py:535 stock/models.py:471
+#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:328
msgid "Base Part"
msgstr ""
@@ -2380,7 +2469,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:818 templates/js/translated/order.js:1038
-#: templates/js/translated/part.js:245 templates/js/translated/part.js:889
+#: templates/js/translated/part.js:245 templates/js/translated/part.js:895
msgid "MPN"
msgstr ""
@@ -2409,8 +2498,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1960 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:709 templates/js/translated/stock.js:1296
+#: stock/models.py:1988 templates/js/translated/company.js:647
+#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1304
msgid "Value"
msgstr ""
@@ -2418,10 +2507,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:913 part/models.py:2450
+#: company/models.py:429 part/models.py:915 part/models.py:2457
#: part/templates/part/part_base.html:288
-#: templates/InvenTree/settings/settings.html:284
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:715
+#: templates/InvenTree/settings/settings.html:287
+#: templates/js/translated/company.js:653 templates/js/translated/part.js:721
msgid "Units"
msgstr ""
@@ -2434,13 +2523,13 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:78
-#: company/templates/company/supplier_part.html:87 order/models.py:224
+#: company/templates/company/supplier_part.html:87 order/models.py:227
#: order/templates/order/order_base.html:112
-#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
-#: part/bom.py:247 stock/templates/stock/item_base.html:397
+#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237
+#: part/bom.py:265 stock/templates/stock/item_base.html:397
#: templates/js/translated/company.js:337
#: templates/js/translated/company.js:774 templates/js/translated/order.js:823
-#: templates/js/translated/part.js:215 templates/js/translated/part.js:857
+#: templates/js/translated/part.js:215 templates/js/translated/part.js:863
#: templates/js/translated/table_filters.js:393
msgid "Supplier"
msgstr ""
@@ -2450,8 +2539,8 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:1025
-#: templates/js/translated/part.js:226 templates/js/translated/part.js:875
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1025
+#: templates/js/translated/part.js:226 templates/js/translated/part.js:881
msgid "SKU"
msgstr ""
@@ -2472,22 +2561,22 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:119
-#: part/models.py:2641 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2648 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:580 part/models.py:1779
+#: company/models.py:580 part/models.py:1781
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1779
+#: company/models.py:580 part/models.py:1781
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:493 stock/templates/stock/item_base.html:338
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1791
+#: stock/models.py:495 stock/templates/stock/item_base.html:338
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1799
msgid "Packaging"
msgstr ""
@@ -2495,7 +2584,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1781
+#: company/models.py:584 part/models.py:1783
msgid "multiple"
msgstr ""
@@ -2554,12 +2643,12 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:83 order/models.py:547
-#: order/templates/order/sales_order_base.html:115 stock/models.py:512
-#: stock/models.py:513 stock/serializers.py:625
+#: company/templates/company/company_base.html:83 order/models.py:552
+#: order/templates/order/sales_order_base.html:115 stock/models.py:514
+#: stock/models.py:515 stock/serializers.py:626
#: stock/templates/stock/item_base.html:290
#: templates/js/translated/company.js:329 templates/js/translated/order.js:1240
-#: templates/js/translated/stock.js:2452
+#: templates/js/translated/stock.js:2610
#: templates/js/translated/table_filters.js:397
msgid "Customer"
msgstr ""
@@ -2590,7 +2679,7 @@ msgstr ""
#: company/templates/company/detail.html:20
#: company/templates/company/manufacturer_part.html:118
-#: part/templates/part/detail.html:336
+#: part/templates/part/detail.html:353
msgid "New Supplier Part"
msgstr ""
@@ -2598,8 +2687,8 @@ msgstr ""
#: company/templates/company/detail.html:79
#: company/templates/company/manufacturer_part.html:127
#: company/templates/company/manufacturer_part.html:156
-#: part/templates/part/category.html:171 part/templates/part/detail.html:345
-#: part/templates/part/detail.html:374
+#: part/templates/part/category.html:171 part/templates/part/detail.html:362
+#: part/templates/part/detail.html:391
msgid "Options"
msgstr ""
@@ -2627,7 +2716,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:364
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:381
msgid "New Manufacturer Part"
msgstr ""
@@ -2641,7 +2730,7 @@ msgstr ""
#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:68 part/templates/part/part_sidebar.html:33
+#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
@@ -2663,7 +2752,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:91 part/templates/part/part_sidebar.html:37
+#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:41
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
@@ -2691,13 +2780,13 @@ msgstr ""
#: company/templates/company/detail.html:384
#: company/templates/company/manufacturer_part.html:215
-#: part/templates/part/detail.html:418
+#: part/templates/part/detail.html:435
msgid "Delete Supplier Parts?"
msgstr ""
#: company/templates/company/detail.html:385
#: company/templates/company/manufacturer_part.html:216
-#: part/templates/part/detail.html:419
+#: part/templates/part/detail.html:436
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2714,7 +2803,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:34
#: company/templates/company/supplier_part.html:159
-#: part/templates/part/detail.html:71 part/templates/part/part_base.html:76
+#: part/templates/part/detail.html:88 part/templates/part/part_base.html:76
msgid "Order part"
msgstr ""
@@ -2735,34 +2824,34 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:114
#: company/templates/company/supplier_part.html:15 company/views.py:49
-#: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163
+#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:163
#: templates/InvenTree/search.html:188 templates/navbar.html:45
msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
-#: part/templates/part/detail.html:347
+#: part/templates/part/detail.html:364
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
#: company/templates/company/manufacturer_part.html:158
#: company/templates/company/manufacturer_part.html:254
-#: part/templates/part/detail.html:347 part/templates/part/detail.html:376
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:393
#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31
-#: users/models.py:210
+#: users/models.py:212
msgid "Delete"
msgstr ""
#: company/templates/company/manufacturer_part.html:143
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:17
-#: part/templates/part/detail.html:170 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:187 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:147
-#: part/templates/part/detail.html:175
+#: part/templates/part/detail.html:192
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
@@ -2773,7 +2862,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:191
-#: part/templates/part/detail.html:862
+#: part/templates/part/detail.html:892
msgid "Add Parameter"
msgstr ""
@@ -2802,9 +2891,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:477
+#: company/templates/company/supplier_part.html:24 stock/models.py:479
#: stock/templates/stock/item_base.html:402
-#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1748
+#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1756
msgid "Supplier Part"
msgstr ""
@@ -2830,7 +2919,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:167
-#: templates/js/translated/stock.js:360
+#: templates/js/translated/stock.js:368
msgid "New Stock Item"
msgstr ""
@@ -2840,7 +2929,7 @@ msgid "Supplier Part Orders"
msgstr ""
#: company/templates/company/supplier_part.html:160
-#: part/templates/part/detail.html:72
+#: part/templates/part/detail.html:89
msgid "Order Part"
msgstr ""
@@ -2851,7 +2940,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1619
+#: part/templates/part/prices.html:271 part/views.py:1628
msgid "Add Price Break"
msgstr ""
@@ -2859,11 +2948,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1681
+#: company/templates/company/supplier_part.html:224 part/views.py:1690
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1667
+#: company/templates/company/supplier_part.html:238 part/views.py:1676
msgid "Edit Price Break"
msgstr ""
@@ -2881,10 +2970,10 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:150
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/bom.js:328 templates/js/translated/part.js:489
-#: templates/js/translated/part.js:624 templates/js/translated/part.js:1118
-#: templates/js/translated/part.js:1279 templates/js/translated/stock.js:927
-#: templates/js/translated/stock.js:1580 templates/navbar.html:28
+#: templates/js/translated/bom.js:340 templates/js/translated/part.js:495
+#: templates/js/translated/part.js:630 templates/js/translated/part.js:1125
+#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:935
+#: templates/js/translated/stock.js:1588 templates/navbar.html:28
msgid "Stock"
msgstr ""
@@ -2907,8 +2996,8 @@ msgstr ""
#: stock/templates/stock/location.html:151
#: stock/templates/stock/location.html:163
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2351
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2509
+#: templates/stats.html:105 templates/stats.html:114 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2937,20 +3026,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:584
+#: company/views.py:129 part/views.py:593
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:616
+#: company/views.py:158 part/views.py:625
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:623
+#: company/views.py:165 part/views.py:632
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:632
+#: company/views.py:174 part/views.py:641
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3036,282 +3125,282 @@ msgstr ""
msgid "Cancel order"
msgstr ""
-#: order/models.py:122
+#: order/models.py:125
msgid "Order description"
msgstr ""
-#: order/models.py:124
+#: order/models.py:127
msgid "Link to external page"
msgstr ""
-#: order/models.py:132
+#: order/models.py:135
msgid "Created By"
msgstr ""
-#: order/models.py:139
+#: order/models.py:142
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:144
+#: order/models.py:147
msgid "Order notes"
msgstr ""
-#: order/models.py:211 order/models.py:537
+#: order/models.py:214 order/models.py:542
msgid "Order reference"
msgstr ""
-#: order/models.py:216 order/models.py:552
+#: order/models.py:219 order/models.py:557
msgid "Purchase order status"
msgstr ""
-#: order/models.py:225
+#: order/models.py:228
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:228 order/templates/order/order_base.html:118
+#: order/models.py:231 order/templates/order/order_base.html:118
#: templates/js/translated/order.js:832
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:228
+#: order/models.py:231
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:235
+#: order/models.py:238
msgid "received by"
msgstr ""
-#: order/models.py:240
+#: order/models.py:243
msgid "Issue Date"
msgstr ""
-#: order/models.py:241
+#: order/models.py:244
msgid "Date order was issued"
msgstr ""
-#: order/models.py:246
+#: order/models.py:249
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:247
+#: order/models.py:250
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:253
+#: order/models.py:256
msgid "Date order was completed"
msgstr ""
-#: order/models.py:282
+#: order/models.py:285
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:411
-msgid "Quantity must be an integer"
-msgstr ""
-
-#: order/models.py:415
+#: order/models.py:420
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:548
+#: order/models.py:553
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:554
+#: order/models.py:559
msgid "Customer Reference "
msgstr ""
-#: order/models.py:554
+#: order/models.py:559
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:559
+#: order/models.py:564
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:562 order/models.py:1028
+#: order/models.py:567 order/models.py:1048
#: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429
msgid "Shipment Date"
msgstr ""
-#: order/models.py:569
+#: order/models.py:574
msgid "shipped by"
msgstr ""
-#: order/models.py:635
+#: order/models.py:640
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:639
+#: order/models.py:644
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:642
+#: order/models.py:647
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:645
+#: order/models.py:650
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:797
+#: order/models.py:806
msgid "Item quantity"
msgstr ""
-#: order/models.py:803
+#: order/models.py:812
msgid "Line item reference"
msgstr ""
-#: order/models.py:805
+#: order/models.py:814
msgid "Line item notes"
msgstr ""
-#: order/models.py:835 order/models.py:926 order/models.py:1022
-#: templates/js/translated/order.js:1820
+#: order/models.py:842
+msgid "Supplier part must match supplier"
+msgstr ""
+
+#: order/models.py:855 order/models.py:946 order/models.py:1042
+#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2271
msgid "Order"
msgstr ""
-#: order/models.py:836 order/templates/order/order_base.html:9
+#: order/models.py:856 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:352
-#: templates/js/translated/order.js:801 templates/js/translated/part.js:832
-#: templates/js/translated/stock.js:1725 templates/js/translated/stock.js:2433
+#: templates/js/translated/order.js:801 templates/js/translated/part.js:838
+#: templates/js/translated/stock.js:1733 templates/js/translated/stock.js:2591
msgid "Purchase Order"
msgstr ""
-#: order/models.py:857
+#: order/models.py:877
msgid "Supplier part"
msgstr ""
-#: order/models.py:864 order/templates/order/order_base.html:163
+#: order/models.py:884 order/templates/order/order_base.html:163
#: templates/js/translated/order.js:589 templates/js/translated/order.js:1118
-#: templates/js/translated/part.js:904 templates/js/translated/part.js:930
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:937
#: templates/js/translated/table_filters.js:317
msgid "Received"
msgstr ""
-#: order/models.py:865
+#: order/models.py:885
msgid "Number of items received"
msgstr ""
-#: order/models.py:872 part/templates/part/prices.html:176 stock/models.py:606
+#: order/models.py:892 part/templates/part/prices.html:176 stock/models.py:608
#: stock/serializers.py:170 stock/templates/stock/item_base.html:359
-#: templates/js/translated/stock.js:1779
+#: templates/js/translated/stock.js:1787
msgid "Purchase Price"
msgstr ""
-#: order/models.py:873
+#: order/models.py:893
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:881
+#: order/models.py:901
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:936 part/templates/part/part_pricing.html:112
+#: order/models.py:956 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:937
+#: order/models.py:957
msgid "Unit sale price"
msgstr ""
-#: order/models.py:942
+#: order/models.py:962
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1029
+#: order/models.py:1049
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1036
+#: order/models.py:1056
msgid "Checked By"
msgstr ""
-#: order/models.py:1037
+#: order/models.py:1057
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1045
+#: order/models.py:1065
msgid "Shipment number"
msgstr ""
-#: order/models.py:1052
+#: order/models.py:1072
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1059
+#: order/models.py:1079
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1060
+#: order/models.py:1080
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1070
+#: order/models.py:1090
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1073
+#: order/models.py:1093
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1149 order/models.py:1151
+#: order/models.py:1171 order/models.py:1173
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1155
+#: order/models.py:1177
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1157
+#: order/models.py:1179
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1160
+#: order/models.py:1182
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1164
+#: order/models.py:1186
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:1170 order/serializers.py:734
+#: order/models.py:1192 order/serializers.py:740
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1173
+#: order/models.py:1195
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1174
+#: order/models.py:1196
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1182
+#: order/models.py:1204
msgid "Line"
msgstr ""
-#: order/models.py:1190 order/serializers.py:825 order/serializers.py:953
-#: templates/js/translated/model_renderers.js:251
+#: order/models.py:1212 order/serializers.py:831 order/serializers.py:959
+#: templates/js/translated/model_renderers.js:285
msgid "Shipment"
msgstr ""
-#: order/models.py:1191
+#: order/models.py:1213
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1203
+#: order/models.py:1225
msgid "Item"
msgstr ""
-#: order/models.py:1204
+#: order/models.py:1226
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1207
+#: order/models.py:1229
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3319,7 +3408,7 @@ msgstr ""
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:211 order/serializers.py:790
+#: order/serializers.py:211 order/serializers.py:796
msgid "Line Item"
msgstr ""
@@ -3355,39 +3444,39 @@ msgstr ""
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:581
+#: order/serializers.py:587
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:649
+#: order/serializers.py:655
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:699 order/serializers.py:802
+#: order/serializers.py:705 order/serializers.py:808
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:721
+#: order/serializers.py:727
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:815
+#: order/serializers.py:821
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:839 order/serializers.py:964
+#: order/serializers.py:845 order/serializers.py:970
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:842 order/serializers.py:967
+#: order/serializers.py:848 order/serializers.py:973
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:894
+#: order/serializers.py:900
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:904
+#: order/serializers.py:910
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3441,6 +3530,7 @@ msgstr ""
#: order/templates/order/order_base.html:94
#: order/templates/order/sales_order_base.html:89
+#: templates/js/translated/stock.js:2327
msgid "Order Status"
msgstr ""
@@ -3538,7 +3628,7 @@ msgstr ""
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/build.js:300 templates/js/translated/build.js:1311
#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488
-#: templates/js/translated/stock.js:593 templates/js/translated/stock.js:761
+#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769
msgid "Remove row"
msgstr ""
@@ -3729,7 +3819,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:48
-#: templates/js/translated/bom.js:720 templates/js/translated/build.js:1243
+#: templates/js/translated/bom.js:732 templates/js/translated/build.js:1243
msgid "Actions"
msgstr ""
@@ -3832,447 +3922,448 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:125 part/models.py:81 part/models.py:847
+#: part/bom.py:125 part/models.py:83 part/models.py:849
#: part/templates/part/category.html:108 part/templates/part/part_base.html:338
msgid "Default Location"
msgstr ""
-#: part/bom.py:126 part/templates/part/part_base.html:185
+#: part/bom.py:126 templates/email/low_stock_notification.html:17
+msgid "Total Stock"
+msgstr ""
+
+#: part/bom.py:127 part/templates/part/part_base.html:185
msgid "Available Stock"
msgstr ""
-#: part/forms.py:85
+#: part/bom.py:128 part/templates/part/part_base.html:203
+#: templates/js/translated/part.js:1301
+msgid "On Order"
+msgstr ""
+
+#: part/forms.py:84
msgid "Select part category"
msgstr ""
-#: part/forms.py:122
+#: part/forms.py:121
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:126
+#: part/forms.py:125
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:146
+#: part/forms.py:145
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:82
+#: part/models.py:84
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:85
+#: part/models.py:87
msgid "Default keywords"
msgstr ""
-#: part/models.py:85
+#: part/models.py:87
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:95 part/models.py:2526 part/templates/part/category.html:15
+#: part/models.py:97 part/models.py:2533 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:96 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/stats.html:84
+#: part/models.py:98 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/stats.html:96
#: users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:358 part/templates/part/cat_link.html:3
+#: part/models.py:360 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:17 part/templates/part/category.html:133
#: part/templates/part/category.html:153
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:37
-#: templates/js/translated/part.js:1656 templates/navbar.html:21
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+#: templates/js/translated/part.js:1663 templates/navbar.html:21
+#: templates/stats.html:92 templates/stats.html:101 users/models.py:41
msgid "Parts"
msgstr ""
-#: part/models.py:450
+#: part/models.py:452
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:500 part/models.py:512
+#: part/models.py:502 part/models.py:514
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:642
+#: part/models.py:644
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:646
+#: part/models.py:648
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:651
+#: part/models.py:653
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:746
+#: part/models.py:748
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:771
+#: part/models.py:773
msgid "Part name"
msgstr ""
-#: part/models.py:778
+#: part/models.py:780
msgid "Is Template"
msgstr ""
-#: part/models.py:779
+#: part/models.py:781
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:789
+#: part/models.py:791
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:790
+#: part/models.py:792
msgid "Variant Of"
msgstr ""
-#: part/models.py:796
+#: part/models.py:798
msgid "Part description"
msgstr ""
-#: part/models.py:801 part/templates/part/category.html:86
+#: part/models.py:803 part/templates/part/category.html:86
#: part/templates/part/part_base.html:302
msgid "Keywords"
msgstr ""
-#: part/models.py:802
+#: part/models.py:804
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:809 part/models.py:2276 part/models.py:2525
+#: part/models.py:811 part/models.py:2283 part/models.py:2532
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:183
-#: templates/js/translated/part.js:1261
+#: templates/InvenTree/settings/settings.html:186
+#: templates/js/translated/part.js:1268
msgid "Category"
msgstr ""
-#: part/models.py:810
+#: part/models.py:812
msgid "Part category"
msgstr ""
-#: part/models.py:815 part/templates/part/part_base.html:274
-#: templates/js/translated/part.js:612 templates/js/translated/part.js:1214
-#: templates/js/translated/stock.js:1552
+#: part/models.py:817 part/templates/part/part_base.html:274
+#: templates/js/translated/part.js:618 templates/js/translated/part.js:1221
+#: templates/js/translated/stock.js:1560
msgid "IPN"
msgstr ""
-#: part/models.py:816
+#: part/models.py:818
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:822
+#: part/models.py:824
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:823 part/templates/part/part_base.html:281
-#: report/models.py:200 templates/js/translated/part.js:616
+#: part/models.py:825 part/templates/part/part_base.html:281
+#: report/models.py:200 templates/js/translated/part.js:622
msgid "Revision"
msgstr ""
-#: part/models.py:845
+#: part/models.py:847
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:892 part/templates/part/part_base.html:347
+#: part/models.py:894 part/templates/part/part_base.html:347
msgid "Default Supplier"
msgstr ""
-#: part/models.py:893
+#: part/models.py:895
msgid "Default supplier part"
msgstr ""
-#: part/models.py:900
+#: part/models.py:902
msgid "Default Expiry"
msgstr ""
-#: part/models.py:901
+#: part/models.py:903
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:906 part/templates/part/part_base.html:196
+#: part/models.py:908 part/templates/part/part_base.html:196
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:907
+#: part/models.py:909
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:914
+#: part/models.py:916
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:920
+#: part/models.py:922
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:926
+#: part/models.py:928
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:932
+#: part/models.py:934
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:937
+#: part/models.py:939
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:942
+#: part/models.py:944
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:946 plugin/models.py:46
-#: templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:96
-#: templates/js/translated/table_filters.js:295
-#: templates/js/translated/table_filters.js:417
-msgid "Active"
-msgstr ""
-
-#: part/models.py:947
+#: part/models.py:949
msgid "Is this part active?"
msgstr ""
-#: part/models.py:952
+#: part/models.py:954
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:957
+#: part/models.py:959
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:960
+#: part/models.py:962
msgid "BOM checksum"
msgstr ""
-#: part/models.py:960
+#: part/models.py:962
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:963
+#: part/models.py:965
msgid "BOM checked by"
msgstr ""
-#: part/models.py:965
+#: part/models.py:967
msgid "BOM checked date"
msgstr ""
-#: part/models.py:969
+#: part/models.py:971
msgid "Creation User"
msgstr ""
-#: part/models.py:1781
+#: part/models.py:1783
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2326
+#: part/models.py:2333
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2343
+#: part/models.py:2350
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2363 templates/js/translated/part.js:1707
-#: templates/js/translated/stock.js:1276
+#: part/models.py:2370 templates/js/translated/part.js:1714
+#: templates/js/translated/stock.js:1284
msgid "Test Name"
msgstr ""
-#: part/models.py:2364
+#: part/models.py:2371
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2376
msgid "Test Description"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2377
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2375 templates/js/translated/part.js:1716
+#: part/models.py:2382 templates/js/translated/part.js:1723
#: templates/js/translated/table_filters.js:281
msgid "Required"
msgstr ""
-#: part/models.py:2376
+#: part/models.py:2383
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2381 templates/js/translated/part.js:1724
+#: part/models.py:2388 templates/js/translated/part.js:1731
msgid "Requires Value"
msgstr ""
-#: part/models.py:2382
+#: part/models.py:2389
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2387 templates/js/translated/part.js:1731
+#: part/models.py:2394 templates/js/translated/part.js:1738
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2388
+#: part/models.py:2395
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2399
+#: part/models.py:2406
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2435
+#: part/models.py:2442
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2443
+#: part/models.py:2450
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2450
+#: part/models.py:2457
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2480
+#: part/models.py:2487
msgid "Parent Part"
msgstr ""
-#: part/models.py:2482 part/models.py:2531 part/models.py:2532
-#: templates/InvenTree/settings/settings.html:178
+#: part/models.py:2489 part/models.py:2538 part/models.py:2539
+#: templates/InvenTree/settings/settings.html:181
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2484
+#: part/models.py:2491
msgid "Data"
msgstr ""
-#: part/models.py:2484
+#: part/models.py:2491
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2536 templates/InvenTree/settings/settings.html:187
+#: part/models.py:2543 templates/InvenTree/settings/settings.html:190
msgid "Default Value"
msgstr ""
-#: part/models.py:2537
+#: part/models.py:2544
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2614
+#: part/models.py:2621
msgid "Select parent part"
msgstr ""
-#: part/models.py:2622
+#: part/models.py:2629
msgid "Sub part"
msgstr ""
-#: part/models.py:2623
+#: part/models.py:2630
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2629
+#: part/models.py:2636
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2631 templates/js/translated/bom.js:566
-#: templates/js/translated/bom.js:640
+#: part/models.py:2638 templates/js/translated/bom.js:578
+#: templates/js/translated/bom.js:652
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2638
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2634
+#: part/models.py:2641
msgid "Overage"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2642
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2638
+#: part/models.py:2645
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2641
+#: part/models.py:2648
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2643
+#: part/models.py:2650
msgid "Checksum"
msgstr ""
-#: part/models.py:2643
+#: part/models.py:2650
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2647 templates/js/translated/bom.js:657
+#: part/models.py:2654 templates/js/translated/bom.js:669
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2648
+#: part/models.py:2655
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2653 templates/js/translated/bom.js:649
+#: part/models.py:2660 templates/js/translated/bom.js:661
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2654
+#: part/models.py:2661
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2739 stock/models.py:355
+#: part/models.py:2746 stock/models.py:357
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2748 part/models.py:2750
+#: part/models.py:2755 part/models.py:2757
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2879
+#: part/models.py:2886
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2908
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2920
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2928
msgid "Substitute part"
msgstr ""
-#: part/models.py:2932
+#: part/models.py:2939
msgid "Part 1"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2943
msgid "Part 2"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2943
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2968
+#: part/models.py:2975
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4327,7 +4418,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:253
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:270
msgid "BOM actions"
msgstr ""
@@ -4499,7 +4590,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:348
msgid "Duplicate Part"
msgstr ""
@@ -4533,145 +4624,149 @@ msgid "Showing stock for all variants of %(full_name)s"
msgstr ""
#: part/templates/part/detail.html:43
+msgid "Part Stock Allocations"
+msgstr ""
+
+#: part/templates/part/detail.html:60
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:48
+#: part/templates/part/detail.html:65
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:105
+#: part/templates/part/detail.html:122
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:142
+#: part/templates/part/detail.html:159
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:146
+#: part/templates/part/detail.html:163
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:147
+#: part/templates/part/detail.html:164
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:174
+#: part/templates/part/detail.html:191
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:45
+#: part/templates/part/detail.html:228 part/templates/part/part_sidebar.html:49
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:215 part/templates/part/detail.html:216
+#: part/templates/part/detail.html:232 part/templates/part/detail.html:233
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:236 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:253 part/templates/part/part_sidebar.html:17
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:241
+#: part/templates/part/detail.html:258
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:245 templates/js/translated/bom.js:70
+#: part/templates/part/detail.html:262 templates/js/translated/bom.js:70
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:247
+#: part/templates/part/detail.html:264
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:257
+#: part/templates/part/detail.html:274
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:259 templates/js/translated/part.js:272
+#: part/templates/part/detail.html:276 templates/js/translated/part.js:272
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:278
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:266
+#: part/templates/part/detail.html:283
msgid "New BOM Item"
msgstr ""
-#: part/templates/part/detail.html:267
+#: part/templates/part/detail.html:284
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:280
+#: part/templates/part/detail.html:297
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:297
+#: part/templates/part/detail.html:314
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:322
+#: part/templates/part/detail.html:339
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:332
+#: part/templates/part/detail.html:349
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:360
+#: part/templates/part/detail.html:377
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:393
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:558
+#: part/templates/part/detail.html:575
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:559
+#: part/templates/part/detail.html:576
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:608
+#: part/templates/part/detail.html:625
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:652
+#: part/templates/part/detail.html:682
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:660
+#: part/templates/part/detail.html:690
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:755
+#: part/templates/part/detail.html:785
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:812
+#: part/templates/part/detail.html:842
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:925
+#: part/templates/part/detail.html:955
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:937
+#: part/templates/part/detail.html:967
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:949
+#: part/templates/part/detail.html:979
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1038
+#: part/templates/part/detail.html:1068
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4786,7 +4881,7 @@ msgstr ""
#: templates/js/translated/company.js:508
#: templates/js/translated/company.js:765
#: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:527 templates/js/translated/part.js:604
+#: templates/js/translated/part.js:533 templates/js/translated/part.js:610
msgid "Inactive"
msgstr ""
@@ -4805,10 +4900,6 @@ msgstr ""
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1294
-msgid "On Order"
-msgstr ""
-
#: part/templates/part/part_base.html:210 templates/InvenTree/index.html:178
msgid "Required for Build Orders"
msgstr ""
@@ -4821,12 +4912,12 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:678
+#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:690
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1125
-#: templates/js/translated/part.js:1298
+#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1132
+#: templates/js/translated/part.js:1305
msgid "Building"
msgstr ""
@@ -4878,7 +4969,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:632
+#: templates/js/translated/bom.js:644
msgid "No supplier pricing available"
msgstr ""
@@ -4920,7 +5011,12 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/templates/part/part_sidebar.html:41
+#: part/templates/part/part_sidebar.html:31
+#: stock/templates/stock/stock_sidebar.html:8
+msgid "Allocations"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:45
msgid "Test Templates"
msgstr ""
@@ -4993,7 +5089,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:626
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:638
msgid "Supplier Cost"
msgstr ""
@@ -5015,7 +5111,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1690
+#: part/templates/part/prices.html:215 part/views.py:1699
msgid "Add Internal Price Break"
msgstr ""
@@ -5035,9 +5131,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:588
-#: templates/js/translated/part.js:491 templates/js/translated/part.js:1115
-#: templates/js/translated/part.js:1302
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:600
+#: templates/js/translated/part.js:497 templates/js/translated/part.js:1122
+#: templates/js/translated/part.js:1309
msgid "No Stock"
msgstr ""
@@ -5054,116 +5150,116 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:116
+#: part/templatetags/inventree_extras.py:125
msgid "Unknown database"
msgstr ""
-#: part/views.py:92
+#: part/views.py:93
msgid "Set Part Category"
msgstr ""
-#: part/views.py:142
+#: part/views.py:143
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:214
+#: part/views.py:215
msgid "Match References"
msgstr ""
-#: part/views.py:502
+#: part/views.py:511
msgid "None"
msgstr ""
-#: part/views.py:561
+#: part/views.py:570
msgid "Part QR Code"
msgstr ""
-#: part/views.py:663
+#: part/views.py:672
msgid "Select Part Image"
msgstr ""
-#: part/views.py:689
+#: part/views.py:698
msgid "Updated part image"
msgstr ""
-#: part/views.py:692
+#: part/views.py:701
msgid "Part image not found"
msgstr ""
-#: part/views.py:766
+#: part/views.py:775
msgid "Match Parts"
msgstr ""
-#: part/views.py:1101
+#: part/views.py:1110
msgid "Export Bill of Materials"
msgstr ""
-#: part/views.py:1150
+#: part/views.py:1159
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1157
+#: part/views.py:1166
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1166
+#: part/views.py:1175
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1315
+#: part/views.py:1324
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1325
+#: part/views.py:1334
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1332
+#: part/views.py:1341
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1391 templates/js/translated/part.js:315
+#: part/views.py:1400 templates/js/translated/part.js:315
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1429
+#: part/views.py:1438
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1435
+#: part/views.py:1444
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1444
+#: part/views.py:1453
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1545
+#: part/views.py:1554
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1601
+#: part/views.py:1610
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1623
+#: part/views.py:1632
msgid "Added new price break"
msgstr ""
-#: part/views.py:1699
+#: part/views.py:1708
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1707
+#: part/views.py:1716
msgid "Delete Internal Price Break"
msgstr ""
-#: plugin/integration.py:124
+#: plugin/integration.py:138
msgid "No author found"
msgstr ""
-#: plugin/integration.py:136
+#: plugin/integration.py:152
msgid "No date found"
msgstr ""
@@ -5191,7 +5287,7 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:195
+#: plugin/models.py:199
msgid "Plugin"
msgstr ""
@@ -5357,12 +5453,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:517 stock/templates/stock/item_base.html:156
+#: stock/models.py:519 stock/templates/stock/item_base.html:156
#: templates/js/translated/build.js:293 templates/js/translated/build.js:697
#: templates/js/translated/build.js:1073
#: templates/js/translated/model_renderers.js:95
#: templates/js/translated/order.js:99 templates/js/translated/order.js:1945
-#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:415
+#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:423
msgid "Serial Number"
msgstr ""
@@ -5371,19 +5467,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:1948
+#: stock/models.py:1976
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:1954
+#: stock/models.py:1982
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:49
+#: templates/InvenTree/settings/plugin.html:50
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2367
+#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2525
msgid "Date"
msgstr ""
@@ -5396,23 +5492,27 @@ msgid "Fail"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:123
-#: stock/templates/stock/stock_sidebar.html:12
+#: stock/templates/stock/stock_sidebar.html:16
msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:578 templates/js/translated/stock.js:748
-#: templates/js/translated/stock.js:2627
+#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756
+#: templates/js/translated/stock.js:2785
msgid "Serial"
msgstr ""
-#: stock/api.py:478
+#: stock/api.py:476
msgid "Quantity is required"
msgstr ""
-#: stock/forms.py:77 stock/forms.py:251 stock/models.py:574
+#: stock/api.py:483
+msgid "Valid part must be supplied"
+msgstr ""
+
+#: stock/forms.py:77 stock/forms.py:251 stock/models.py:576
#: stock/templates/stock/item_base.html:193
-#: templates/js/translated/stock.js:1701
+#: templates/js/translated/stock.js:1709
msgid "Expiry Date"
msgstr ""
@@ -5460,228 +5560,228 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:60 stock/models.py:611
+#: stock/models.py:62 stock/models.py:613
#: stock/templates/stock/item_base.html:416
msgid "Owner"
msgstr ""
-#: stock/models.py:61 stock/models.py:612
+#: stock/models.py:63 stock/models.py:614
msgid "Select Owner"
msgstr ""
-#: stock/models.py:336
+#: stock/models.py:338
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:372
+#: stock/models.py:374
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:382 stock/models.py:391
+#: stock/models.py:384 stock/models.py:393
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:383
+#: stock/models.py:385
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:405
+#: stock/models.py:407
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:413
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:418
+#: stock/models.py:420
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:461
+#: stock/models.py:463
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:470
+#: stock/models.py:472
msgid "Base part"
msgstr ""
-#: stock/models.py:478
+#: stock/models.py:480
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:484 stock/templates/stock/location.html:16
+#: stock/models.py:486 stock/templates/stock/location.html:16
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:487
+#: stock/models.py:489
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:494
+#: stock/models.py:496
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:500 stock/templates/stock/item_base.html:298
+#: stock/models.py:502 stock/templates/stock/item_base.html:298
msgid "Installed In"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:505
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:521
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:535
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:537
+#: stock/models.py:539
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:546
+#: stock/models.py:548
msgid "Source Build"
msgstr ""
-#: stock/models.py:548
+#: stock/models.py:550
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:559
+#: stock/models.py:561
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:562
+#: stock/models.py:564
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:568
+#: stock/models.py:570
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:575
+#: stock/models.py:577
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:588
+#: stock/models.py:590
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:588
+#: stock/models.py:590
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:598 stock/templates/stock/item.html:111
+#: stock/models.py:600 stock/templates/stock/item.html:128
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:607
+#: stock/models.py:609
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1068
+#: stock/models.py:1096
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1074
+#: stock/models.py:1102
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1080
+#: stock/models.py:1108
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1083
+#: stock/models.py:1111
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1086
+#: stock/models.py:1114
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1093
+#: stock/models.py:1121
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1164
+#: stock/models.py:1192
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1167
+#: stock/models.py:1195
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1170
+#: stock/models.py:1198
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1173
+#: stock/models.py:1201
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1176
+#: stock/models.py:1204
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1179
+#: stock/models.py:1207
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1186 stock/serializers.py:774
+#: stock/models.py:1214 stock/serializers.py:775
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1190
+#: stock/models.py:1218
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1194
+#: stock/models.py:1222
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1198
+#: stock/models.py:1226
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1369
+#: stock/models.py:1397
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1868
+#: stock/models.py:1896
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1925
+#: stock/models.py:1953
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1931
+#: stock/models.py:1959
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1949
+#: stock/models.py:1977
msgid "Test name"
msgstr ""
-#: stock/models.py:1955 templates/js/translated/table_filters.js:271
+#: stock/models.py:1983 templates/js/translated/table_filters.js:271
msgid "Test result"
msgstr ""
-#: stock/models.py:1961
+#: stock/models.py:1989
msgid "Test output value"
msgstr ""
-#: stock/models.py:1968
+#: stock/models.py:1996
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1974
+#: stock/models.py:2002
msgid "Test notes"
msgstr ""
@@ -5706,7 +5806,7 @@ msgstr ""
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:326 stock/serializers.py:731 stock/serializers.py:972
+#: stock/serializers.py:326 stock/serializers.py:732 stock/serializers.py:973
msgid "Destination stock location"
msgstr ""
@@ -5718,63 +5818,63 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:588
+#: stock/serializers.py:589
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:592
+#: stock/serializers.py:593
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:597
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:626
+#: stock/serializers.py:627
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:632
+#: stock/serializers.py:633
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:640
+#: stock/serializers.py:641
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:650 stock/serializers.py:880
+#: stock/serializers.py:651 stock/serializers.py:881
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:738
+#: stock/serializers.py:739
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:743
+#: stock/serializers.py:744
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:744
+#: stock/serializers.py:745
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:749
+#: stock/serializers.py:750
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:750
+#: stock/serializers.py:751
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:760
+#: stock/serializers.py:761
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:842
+#: stock/serializers.py:843
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:870
+#: stock/serializers.py:871
msgid "Stock transaction notes"
msgstr ""
@@ -5787,47 +5887,51 @@ msgid "New Entry"
msgstr ""
#: stock/templates/stock/item.html:48
-msgid "Child Stock Items"
-msgstr ""
-
-#: stock/templates/stock/item.html:55
-msgid "This stock item does not have any child items"
+msgid "Stock Item Allocations"
msgstr ""
#: stock/templates/stock/item.html:64
-#: stock/templates/stock/stock_sidebar.html:8
-msgid "Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:57
-msgid "Test Report"
+msgid "Child Stock Items"
msgstr ""
#: stock/templates/stock/item.html:72
+msgid "This stock item does not have any child items"
+msgstr ""
+
+#: stock/templates/stock/item.html:81
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:57
+msgid "Test Report"
+msgstr ""
+
+#: stock/templates/stock/item.html:89
msgid "Delete Test Data"
msgstr ""
-#: stock/templates/stock/item.html:76
+#: stock/templates/stock/item.html:93
msgid "Add Test Data"
msgstr ""
-#: stock/templates/stock/item.html:133
+#: stock/templates/stock/item.html:150
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:137 stock/views.py:482
+#: stock/templates/stock/item.html:154 stock/views.py:482
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304
+#: stock/templates/stock/item.html:309 stock/templates/stock/item.html:334
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:324
+#: stock/templates/stock/item.html:354
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:338
+#: stock/templates/stock/item.html:368
msgid "Delete Test Result"
msgstr ""
@@ -5952,7 +6056,7 @@ msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:206
-#: templates/js/translated/stock.js:1714
+#: templates/js/translated/stock.js:1722
msgid "Last Updated"
msgstr ""
@@ -6111,7 +6215,7 @@ msgid "Sublocations"
msgstr ""
#: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164
-#: templates/stats.html:97 users/models.py:42
+#: templates/stats.html:109 users/models.py:42
msgid "Stock Locations"
msgstr ""
@@ -6135,7 +6239,7 @@ msgstr ""
msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/stock_sidebar.html:16
+#: stock/templates/stock/stock_sidebar.html:20
msgid "Child Items"
msgstr ""
@@ -6164,7 +6268,7 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:162
+#: stock/views.py:162 templates/js/translated/stock.js:139
msgid "Edit Stock Location"
msgstr ""
@@ -6204,7 +6308,7 @@ msgstr ""
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:727 templates/js/translated/stock.js:1066
+#: stock/views.py:727 templates/js/translated/stock.js:1074
msgid "Confirm stock adjustment"
msgstr ""
@@ -6212,7 +6316,7 @@ msgstr ""
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:324
+#: stock/views.py:760 templates/js/translated/stock.js:332
msgid "Edit Stock Item"
msgstr ""
@@ -6224,7 +6328,7 @@ msgstr ""
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1153 templates/js/translated/stock.js:304
+#: stock/views.py:1153 templates/js/translated/stock.js:312
msgid "Duplicate Stock Item"
msgstr ""
@@ -6268,6 +6372,18 @@ msgstr ""
msgid "The requested page does not exist"
msgstr ""
+#: templates/500.html:5 templates/500.html:11
+msgid "Internal Server Error"
+msgstr ""
+
+#: templates/500.html:14
+msgid "The InvenTree server raised an internal error"
+msgstr ""
+
+#: templates/500.html:15
+msgid "Refer to the error log in the admin interface for further details"
+msgstr ""
+
#: templates/503.html:10 templates/503.html:35
msgid "Site is in Maintenance"
msgstr ""
@@ -6390,7 +6506,7 @@ msgid "Signup"
msgstr ""
#: templates/InvenTree/settings/mixins/settings.html:5
-#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:118
+#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113
msgid "Settings"
msgstr ""
@@ -6431,43 +6547,43 @@ msgstr ""
msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage."
msgstr ""
-#: templates/InvenTree/settings/plugin.html:32
+#: templates/InvenTree/settings/plugin.html:33
msgid "Plugins"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:37
+#: templates/InvenTree/settings/plugin.html:38
#: templates/js/translated/plugin.js:15
msgid "Install Plugin"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:46 templates/navbar.html:111
+#: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111
#: users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin.html:49
#: templates/InvenTree/settings/plugin_settings.html:28
msgid "Author"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:50
+#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin_settings.html:43
msgid "Version"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:91
+#: templates/InvenTree/settings/plugin.html:92
msgid "Inactive plugins"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:114
+#: templates/InvenTree/settings/plugin.html:115
msgid "Plugin Error Stack"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:123
+#: templates/InvenTree/settings/plugin.html:124
msgid "Stage"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:125
+#: templates/InvenTree/settings/plugin.html:126
msgid "Message"
msgstr ""
@@ -6555,37 +6671,37 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:75
+#: templates/InvenTree/settings/settings.html:78
msgid "Edit Plugin Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:77
+#: templates/InvenTree/settings/settings.html:80
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:79
+#: templates/InvenTree/settings/settings.html:82
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:168
+#: templates/InvenTree/settings/settings.html:171
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:190
-#: templates/InvenTree/settings/settings.html:289
+#: templates/InvenTree/settings/settings.html:193
+#: templates/InvenTree/settings/settings.html:292
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:191
-#: templates/InvenTree/settings/settings.html:290
+#: templates/InvenTree/settings/settings.html:194
+#: templates/InvenTree/settings/settings.html:293
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:269
+#: templates/InvenTree/settings/settings.html:272
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:273
+#: templates/InvenTree/settings/settings.html:276
msgid "ID"
msgstr ""
@@ -6763,124 +6879,105 @@ msgstr ""
msgid "Remove multifactor"
msgstr ""
-#: templates/InvenTree/settings/user.html:219
+#: templates/InvenTree/settings/user.html:220
+msgid "Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:226
+msgid "Log out active sessions (except this one)"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:227
+msgid "Log Out Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:236
+msgid "unknown on unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:237
+msgid "unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:241
+msgid "IP Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:242
+msgid "Device"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:243
+msgid "Last Activity"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:252
+#, python-format
+msgid "%(time)s ago (this session)"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:254
+#, python-format
+msgid "%(time)s ago"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:266
+msgid "Do you really want to remove the selected email address?"
+msgstr ""
+
#: templates/InvenTree/settings/user_display.html:25
msgid "Theme Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:227
#: templates/InvenTree/settings/user_display.html:35
msgid "Select theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:237
#: templates/InvenTree/settings/user_display.html:46
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:246
#: templates/InvenTree/settings/user_display.html:54
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:254
#: templates/InvenTree/settings/user_display.html:63
msgid "Select language"
msgstr ""
-#: templates/InvenTree/settings/user.html:270
#: templates/InvenTree/settings/user_display.html:79
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:272
#: templates/InvenTree/settings/user_display.html:81
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:279
#: templates/InvenTree/settings/user_display.html:88
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:281
#: templates/InvenTree/settings/user_display.html:91
msgid "Some languages are not complete"
msgstr ""
-#: templates/InvenTree/settings/user.html:283
#: templates/InvenTree/settings/user_display.html:93
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user.html:285
+#: templates/InvenTree/settings/user_display.html:95
+msgid "and hidden."
+msgstr ""
+
#: templates/InvenTree/settings/user_display.html:95
msgid "Show them too"
msgstr ""
-#: templates/InvenTree/settings/user.html:292
#: templates/InvenTree/settings/user_display.html:101
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user.html:293
-#, python-format
-msgid "Native language translation of the\n"
-" InvenTree web application is community contributed via crowdin. Contributions are\n"
-" welcomed and encouraged."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:302
-msgid "Active Sessions"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:308
-msgid "Log out active sessions (except this one)"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:309
-msgid "Log Out Active Sessions"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:318
-msgid "unknown on unknown"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:319
-msgid "unknown"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:323
-msgid "IP Address"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:324
-msgid "Device"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:325
-msgid "Last Activity"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:334
-#, python-format
-msgid "%(time)s ago (this session)"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:336
-#, python-format
-msgid "%(time)s ago"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:348
-msgid "Do you really want to remove the selected email address?"
-msgstr ""
-
-#: templates/InvenTree/settings/user_display.html:95
-msgid "and hidden."
-msgstr ""
-
#: templates/InvenTree/settings/user_display.html:102
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
@@ -6899,9 +6996,9 @@ msgid "InvenTree Version Information"
msgstr ""
#: templates/about.html:11 templates/about.html:105
-#: templates/js/translated/bom.js:395 templates/js/translated/modals.js:53
-#: templates/js/translated/modals.js:573 templates/js/translated/modals.js:667
-#: templates/js/translated/modals.js:970 templates/modals.html:15
+#: templates/js/translated/bom.js:407 templates/js/translated/modals.js:53
+#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
+#: templates/js/translated/modals.js:983 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -7178,13 +7275,13 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1103
+#: templates/js/translated/bom.js:1117
msgid "Required Quantity"
msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:579 templates/js/translated/build.js:1189
+#: templates/js/translated/bom.js:591 templates/js/translated/build.js:1189
#: templates/js/translated/build.js:1810
#: templates/js/translated/table_filters.js:178
msgid "Available"
@@ -7208,10 +7305,6 @@ msgstr ""
msgid "Click on the following link to view this part"
msgstr ""
-#: templates/email/low_stock_notification.html:17
-msgid "Total Stock"
-msgstr ""
-
#: templates/email/low_stock_notification.html:19
msgid "Minimum Quantity"
msgstr ""
@@ -7232,11 +7325,11 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1040
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1053
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1041
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1054
msgid "No response from the InvenTree server"
msgstr ""
@@ -7248,27 +7341,27 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1063
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1051
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1064
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1068
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1056
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1069
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1073
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1061
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1074
msgid "The requested resource could not be located on the server"
msgstr ""
@@ -7280,11 +7373,11 @@ msgstr ""
msgid "HTTP method not allowed at URL"
msgstr ""
-#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1065
+#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1078
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1079
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -7353,7 +7446,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:140
-#: templates/js/translated/modals.js:1030
+#: templates/js/translated/modals.js:1043
msgid "Invalid server response"
msgstr ""
@@ -7381,7 +7474,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1018
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026
msgid "Remove stock item"
msgstr ""
@@ -7428,12 +7521,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73
-#: templates/js/translated/order.js:369 templates/js/translated/stock.js:510
+#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74
-#: templates/js/translated/order.js:370 templates/js/translated/stock.js:511
+#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519
msgid "Select file format"
msgstr ""
@@ -7489,87 +7582,87 @@ msgstr ""
msgid "Remove substitute part"
msgstr ""
-#: templates/js/translated/bom.js:340
-msgid "Select and add a new variant item using the input below"
+#: templates/js/translated/bom.js:352
+msgid "Select and add a new substitute part using the input below"
msgstr ""
-#: templates/js/translated/bom.js:351
+#: templates/js/translated/bom.js:363
msgid "Are you sure you wish to remove this substitute part link?"
msgstr ""
-#: templates/js/translated/bom.js:357
+#: templates/js/translated/bom.js:369
msgid "Remove Substitute Part"
msgstr ""
-#: templates/js/translated/bom.js:396
+#: templates/js/translated/bom.js:408
msgid "Add Substitute"
msgstr ""
-#: templates/js/translated/bom.js:397
+#: templates/js/translated/bom.js:409
msgid "Edit BOM Item Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:516
+#: templates/js/translated/bom.js:528
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:520 templates/js/translated/build.js:1171
+#: templates/js/translated/bom.js:532 templates/js/translated/build.js:1171
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:525
+#: templates/js/translated/bom.js:537
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:597
+#: templates/js/translated/bom.js:609
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:612
+#: templates/js/translated/bom.js:624
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:619
+#: templates/js/translated/bom.js:631
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:668 templates/js/translated/bom.js:757
+#: templates/js/translated/bom.js:680 templates/js/translated/bom.js:769
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:728
+#: templates/js/translated/bom.js:740
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:730
+#: templates/js/translated/bom.js:742
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:732
+#: templates/js/translated/bom.js:744
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:734 templates/js/translated/bom.js:908
+#: templates/js/translated/bom.js:746 templates/js/translated/bom.js:920
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:736 templates/js/translated/bom.js:891
+#: templates/js/translated/bom.js:748 templates/js/translated/bom.js:903
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:830 templates/js/translated/build.js:915
+#: templates/js/translated/bom.js:842 templates/js/translated/build.js:915
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:886
+#: templates/js/translated/bom.js:898
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:1086 templates/js/translated/build.js:1155
+#: templates/js/translated/bom.js:1100 templates/js/translated/build.js:1155
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1108
+#: templates/js/translated/bom.js:1122
msgid "Inherited from parent BOM"
msgstr ""
@@ -7725,9 +7818,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1206
-#: templates/js/translated/part.js:1617 templates/js/translated/stock.js:1512
-#: templates/js/translated/stock.js:2321
+#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1213
+#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1520
+#: templates/js/translated/stock.js:2479
msgid "Select"
msgstr ""
@@ -7735,7 +7828,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2540
+#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2698
msgid "No user information"
msgstr ""
@@ -7808,34 +7901,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:511
-#: templates/js/translated/part.js:596
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:517
+#: templates/js/translated/part.js:602
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:515
-#: templates/js/translated/part.js:600
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:521
+#: templates/js/translated/part.js:606
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:690
+#: templates/js/translated/company.js:631 templates/js/translated/part.js:696
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:732
+#: templates/js/translated/company.js:668 templates/js/translated/part.js:738
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:733
+#: templates/js/translated/company.js:669 templates/js/translated/part.js:739
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:750
+#: templates/js/translated/company.js:688 templates/js/translated/part.js:756
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:762
+#: templates/js/translated/company.js:699 templates/js/translated/part.js:768
msgid "Delete Parameter"
msgstr ""
@@ -7844,12 +7937,12 @@ msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:420
+#: templates/js/translated/filters.js:429
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:421
+#: templates/js/translated/filters.js:430
msgid "false"
msgstr ""
@@ -7869,7 +7962,7 @@ msgstr ""
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:329
+#: templates/js/translated/filters.js:338
msgid "Create filter"
msgstr ""
@@ -7898,20 +7991,20 @@ msgstr ""
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1080 templates/modals.html:19
+#: templates/js/translated/forms.js:1082 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1471
+#: templates/js/translated/forms.js:1487
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1675
+#: templates/js/translated/forms.js:1691
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1895
+#: templates/js/translated/forms.js:1930
msgid "Clear input"
msgstr ""
@@ -7924,7 +8017,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1042
+#: templates/js/translated/stock.js:1050
msgid "Select Stock Items"
msgstr ""
@@ -7974,12 +8067,12 @@ msgid "Select Label Template"
msgstr ""
#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
-#: templates/js/translated/modals.js:599
+#: templates/js/translated/modals.js:610
msgid "Cancel"
msgstr ""
#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:666 templates/js/translated/modals.js:969
+#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:982
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
@@ -7988,47 +8081,47 @@ msgstr ""
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:381
+#: templates/js/translated/modals.js:392
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:540
+#: templates/js/translated/modals.js:551
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:598
+#: templates/js/translated/modals.js:609
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:655
+#: templates/js/translated/modals.js:666
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:921
+#: templates/js/translated/modals.js:934
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:921
+#: templates/js/translated/modals.js:934
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:946
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1030
+#: templates/js/translated/modals.js:1043
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1045
+#: templates/js/translated/modals.js:1058
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1046
+#: templates/js/translated/modals.js:1059
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1069
+#: templates/js/translated/modals.js:1082
msgid "Error requesting form data"
msgstr ""
@@ -8052,23 +8145,24 @@ msgstr ""
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:236
+#: templates/js/translated/model_renderers.js:249
+#: templates/js/translated/model_renderers.js:270
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:253
+#: templates/js/translated/model_renderers.js:287
msgid "Shipment ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:273
+#: templates/js/translated/model_renderers.js:307
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:310
+#: templates/js/translated/model_renderers.js:344
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:339
+#: templates/js/translated/model_renderers.js:373
msgid "Supplier Part ID"
msgstr ""
@@ -8116,7 +8210,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2123
+#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2131
msgid "Stock Status"
msgstr ""
@@ -8140,7 +8234,7 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:790 templates/js/translated/part.js:803
+#: templates/js/translated/order.js:790 templates/js/translated/part.js:809
msgid "No purchase orders found"
msgstr ""
@@ -8165,7 +8259,7 @@ msgid "Total"
msgstr ""
#: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163
-#: templates/js/translated/part.js:1834 templates/js/translated/part.js:2045
+#: templates/js/translated/part.js:1841 templates/js/translated/part.js:2052
msgid "Unit Price"
msgstr ""
@@ -8181,7 +8275,7 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1166 templates/js/translated/part.js:935
+#: templates/js/translated/order.js:1166 templates/js/translated/part.js:942
msgid "Receive line item"
msgstr ""
@@ -8250,7 +8344,7 @@ msgid "Delete Stock Allocation"
msgstr ""
#: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048
-#: templates/js/translated/stock.js:1428
+#: templates/js/translated/stock.js:1436
msgid "Shipped to customer"
msgstr ""
@@ -8378,144 +8472,148 @@ msgstr ""
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:412
+#: templates/js/translated/part.js:351
+msgid "Create Part Variant"
+msgstr ""
+
+#: templates/js/translated/part.js:418
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:414
+#: templates/js/translated/part.js:420
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:419
+#: templates/js/translated/part.js:425
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:421
+#: templates/js/translated/part.js:427
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:438
+#: templates/js/translated/part.js:444
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:448
+#: templates/js/translated/part.js:454
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:451
+#: templates/js/translated/part.js:457
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:475
+#: templates/js/translated/part.js:481
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:503 templates/js/translated/part.js:588
+#: templates/js/translated/part.js:509 templates/js/translated/part.js:594
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:507 templates/js/translated/part.js:592
+#: templates/js/translated/part.js:513 templates/js/translated/part.js:598
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:519
+#: templates/js/translated/part.js:525
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:529
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:638
+#: templates/js/translated/part.js:644
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1005
+#: templates/js/translated/part.js:1012
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1029
+#: templates/js/translated/part.js:1036
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1096 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:1363
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1266
+#: templates/js/translated/part.js:1273
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1289
+#: templates/js/translated/part.js:1296
#: templates/js/translated/table_filters.js:430
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1380 templates/js/translated/part.js:1552
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559
+#: templates/js/translated/stock.js:2440
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1396
+#: templates/js/translated/part.js:1403
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1571 templates/js/translated/stock.js:2301
+#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2459
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1635
+#: templates/js/translated/part.js:1642
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1649 templates/js/translated/stock.js:2345
+#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2503
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1693
+#: templates/js/translated/part.js:1700
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1744 templates/js/translated/stock.js:1234
+#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1242
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1745 templates/js/translated/stock.js:1235
+#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1243
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1751
+#: templates/js/translated/part.js:1758
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1773
+#: templates/js/translated/part.js:1780
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1787
+#: templates/js/translated/part.js:1794
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1812
+#: templates/js/translated/part.js:1819
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1867
+#: templates/js/translated/part.js:1874
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1868
+#: templates/js/translated/part.js:1875
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1969
+#: templates/js/translated/part.js:1976
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1988
+#: templates/js/translated/part.js:1995
msgid "Single Price Difference"
msgstr ""
@@ -8589,340 +8687,344 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:73
+#: templates/js/translated/stock.js:74
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:173
+#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:181
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/stock.js:93 templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:94 templates/js/translated/stock.js:183
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/stock.js:101
+#: templates/js/translated/stock.js:102
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:110
+#: templates/js/translated/stock.js:111
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:146
+#: templates/js/translated/stock.js:154
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:186
+#: templates/js/translated/stock.js:194
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:225
+#: templates/js/translated/stock.js:233
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:231
+#: templates/js/translated/stock.js:239
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:374
+#: templates/js/translated/stock.js:382
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:387
+#: templates/js/translated/stock.js:395
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:412
+#: templates/js/translated/stock.js:420
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:416 templates/js/translated/stock.js:417
+#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:433
+#: templates/js/translated/stock.js:441
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:453
+#: templates/js/translated/stock.js:461
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:462
+#: templates/js/translated/stock.js:470
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:507
+#: templates/js/translated/stock.js:515
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:518
+#: templates/js/translated/stock.js:526
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:527
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:628
+#: templates/js/translated/stock.js:636
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:629
+#: templates/js/translated/stock.js:637
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:706
+#: templates/js/translated/stock.js:714
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:707
+#: templates/js/translated/stock.js:715
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:709
+#: templates/js/translated/stock.js:717
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:710
+#: templates/js/translated/stock.js:718
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:796
+#: templates/js/translated/stock.js:804
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:797
+#: templates/js/translated/stock.js:805
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:892
+#: templates/js/translated/stock.js:900
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:893
+#: templates/js/translated/stock.js:901
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:899
+#: templates/js/translated/stock.js:907
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:900
+#: templates/js/translated/stock.js:908
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:904
+#: templates/js/translated/stock.js:912
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:905
+#: templates/js/translated/stock.js:913
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:909
+#: templates/js/translated/stock.js:917
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:910 users/models.py:206
+#: templates/js/translated/stock.js:918 users/models.py:208
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:914 templates/stock_table.html:58
+#: templates/js/translated/stock.js:922 templates/stock_table.html:58
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1003
+#: templates/js/translated/stock.js:1011
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1003
+#: templates/js/translated/stock.js:1011
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1043
+#: templates/js/translated/stock.js:1051
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1201
+#: templates/js/translated/stock.js:1209
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1211
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1208
+#: templates/js/translated/stock.js:1216
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1230
+#: templates/js/translated/stock.js:1238
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1256
+#: templates/js/translated/stock.js:1264
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1313
+#: templates/js/translated/stock.js:1321
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1420
+#: templates/js/translated/stock.js:1428
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1424
+#: templates/js/translated/stock.js:1432
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1432
+#: templates/js/translated/stock.js:1440
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1438
+#: templates/js/translated/stock.js:1446
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1596
+#: templates/js/translated/stock.js:1604
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1601
+#: templates/js/translated/stock.js:1609
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1612
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/stock.js:1616
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1610
+#: templates/js/translated/stock.js:1618
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1616
+#: templates/js/translated/stock.js:1624
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1626
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1620
+#: templates/js/translated/stock.js:1628
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1625
+#: templates/js/translated/stock.js:1633
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1632
+#: templates/js/translated/stock.js:1640
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1634
+#: templates/js/translated/stock.js:1642
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1644
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1640
+#: templates/js/translated/stock.js:1648
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1698
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1763
+#: templates/js/translated/stock.js:1771
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1801
+#: templates/js/translated/stock.js:1809
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1822 templates/js/translated/stock.js:1870
+#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:1878
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1910
+#: templates/js/translated/stock.js:1918
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1937
+#: templates/js/translated/stock.js:1945
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1939
+#: templates/js/translated/stock.js:1947
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:2138
+#: templates/js/translated/stock.js:2146
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2152
+#: templates/js/translated/stock.js:2160
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2153
+#: templates/js/translated/stock.js:2161
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2377
+#: templates/js/translated/stock.js:2340
+msgid "Allocated Quantity"
+msgstr ""
+
+#: templates/js/translated/stock.js:2535
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:2399
+#: templates/js/translated/stock.js:2557
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2424
+#: templates/js/translated/stock.js:2582
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2443
+#: templates/js/translated/stock.js:2601
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2462
+#: templates/js/translated/stock.js:2620
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2480
+#: templates/js/translated/stock.js:2638
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2503
+#: templates/js/translated/stock.js:2661
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2511
+#: templates/js/translated/stock.js:2669
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2552
+#: templates/js/translated/stock.js:2710
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2553
+#: templates/js/translated/stock.js:2711
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2604
+#: templates/js/translated/stock.js:2762
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2655
+#: templates/js/translated/stock.js:2813
msgid "Uninstall Stock Item"
msgstr ""
@@ -9194,11 +9296,11 @@ msgstr ""
msgid "Sell"
msgstr ""
-#: templates/navbar.html:113
+#: templates/navbar.html:114
msgid "Logout"
msgstr ""
-#: templates/navbar.html:115
+#: templates/navbar.html:116
msgid "Login"
msgstr ""
@@ -9246,31 +9348,43 @@ msgstr ""
msgid "Server is deployed using docker"
msgstr ""
-#: templates/stats.html:40
-msgid "Server status"
+#: templates/stats.html:39
+msgid "Plugin Support"
msgstr ""
#: templates/stats.html:43
-msgid "Healthy"
+msgid "Plugin support enabled"
msgstr ""
#: templates/stats.html:45
-msgid "Issues detected"
+msgid "Plugin support disabled"
msgstr ""
#: templates/stats.html:52
-msgid "Background Worker"
+msgid "Server status"
msgstr ""
#: templates/stats.html:55
+msgid "Healthy"
+msgstr ""
+
+#: templates/stats.html:57
+msgid "Issues detected"
+msgstr ""
+
+#: templates/stats.html:64
+msgid "Background Worker"
+msgstr ""
+
+#: templates/stats.html:67
msgid "Background worker not running"
msgstr ""
-#: templates/stats.html:63
+#: templates/stats.html:75
msgid "Email Settings"
msgstr ""
-#: templates/stats.html:66
+#: templates/stats.html:78
msgid "Email settings not configured"
msgstr ""
@@ -9366,35 +9480,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:193
+#: users/models.py:195
msgid "Permission set"
msgstr ""
-#: users/models.py:201
+#: users/models.py:203
msgid "Group"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
msgid "View"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
msgid "Permission to view items"
msgstr ""
-#: users/models.py:206
+#: users/models.py:208
msgid "Permission to add items"
msgstr ""
-#: users/models.py:208
+#: users/models.py:210
msgid "Change"
msgstr ""
-#: users/models.py:208
+#: users/models.py:210
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:210
+#: users/models.py:212
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po
index c11b450104..50f451f696 100644
--- a/InvenTree/locale/es/LC_MESSAGES/django.po
+++ b/InvenTree/locale/es/LC_MESSAGES/django.po
@@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-01-10 03:54+0000\n"
-"PO-Revision-Date: 2022-01-10 03:58\n"
+"POT-Creation-Date: 2022-01-29 00:17+0000\n"
+"PO-Revision-Date: 2022-01-29 01:11\n"
"Last-Translator: \n"
"Language-Team: Spanish, Mexico\n"
"Language: es_MX\n"
@@ -18,15 +18,15 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 138\n"
-#: InvenTree/api.py:64
+#: InvenTree/api.py:55
msgid "API endpoint not found"
msgstr "Endpoint de API no encontrado"
-#: InvenTree/api.py:110
+#: InvenTree/api.py:101
msgid "No action specified"
msgstr "Ninguna acción especificada"
-#: InvenTree/api.py:124
+#: InvenTree/api.py:116
msgid "No matching action found"
msgstr "No se encontró ninguna acción coincidente"
@@ -80,41 +80,41 @@ msgstr "Confirmación de email"
msgid "You must type the same email each time."
msgstr "Debe escribir el mismo correo electrónico cada vez."
-#: InvenTree/helpers.py:437
+#: InvenTree/helpers.py:439
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr "Duplicar serie: {n}"
-#: InvenTree/helpers.py:444 order/models.py:279 order/models.py:420
+#: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425
#: stock/views.py:1231
msgid "Invalid quantity provided"
msgstr "Cantidad proporcionada no válida"
-#: InvenTree/helpers.py:447
+#: InvenTree/helpers.py:449
msgid "Empty serial number string"
msgstr "Cadena de número de serie vacía"
-#: InvenTree/helpers.py:469 InvenTree/helpers.py:472 InvenTree/helpers.py:475
-#: InvenTree/helpers.py:500
+#: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477
+#: InvenTree/helpers.py:502
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Grupo inválido: {g}"
-#: InvenTree/helpers.py:510
+#: InvenTree/helpers.py:512
#, python-brace-format
msgid "Invalid group {group}"
msgstr ""
-#: InvenTree/helpers.py:516
+#: InvenTree/helpers.py:518
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:522
+#: InvenTree/helpers.py:524
msgid "No serial numbers found"
msgstr "No se encontraron números de serie"
-#: InvenTree/helpers.py:526
+#: InvenTree/helpers.py:528
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Número único de número de serie ({s}) debe coincidir con la cantidad ({q})"
@@ -127,7 +127,7 @@ msgstr "Falta archivo"
msgid "Missing external link"
msgstr "Falta enlace externo"
-#: InvenTree/models.py:132 stock/models.py:1967
+#: InvenTree/models.py:132 stock/models.py:1995
#: templates/js/translated/attachment.js:119
msgid "Attachment"
msgstr "Adjunto"
@@ -137,15 +137,15 @@ msgid "Select file to attach"
msgstr "Seleccionar archivo a adjuntar"
#: InvenTree/models.py:139 company/models.py:131 company/models.py:348
-#: company/models.py:564 order/models.py:124 part/models.py:828
+#: company/models.py:564 order/models.py:127 part/models.py:830
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1317
+#: templates/js/translated/company.js:829 templates/js/translated/part.js:1324
msgid "Link"
msgstr "Enlace"
-#: InvenTree/models.py:140 build/models.py:330 part/models.py:829
-#: stock/models.py:527
+#: InvenTree/models.py:140 build/models.py:332 part/models.py:831
+#: stock/models.py:529
msgid "Link to external URL"
msgstr "Enlace a URL externa"
@@ -157,10 +157,11 @@ msgstr "Comentario"
msgid "File comment"
msgstr "Comentario de archivo"
-#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213
-#: common/models.py:1214 part/models.py:2258 part/models.py:2278
+#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1223
+#: common/models.py:1224 common/models.py:1452 common/models.py:1453
+#: part/models.py:2265 part/models.py:2285
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2534
+#: templates/js/translated/stock.js:2692
msgid "User"
msgstr "Usuario"
@@ -197,42 +198,42 @@ msgstr "Error renombrando archivo"
msgid "Invalid choice"
msgstr "Elección no válida"
-#: InvenTree/models.py:277 InvenTree/models.py:278 company/models.py:415
-#: label/models.py:112 part/models.py:772 part/models.py:2442
-#: plugin/models.py:40 report/models.py:181
+#: InvenTree/models.py:277 InvenTree/models.py:278 common/models.py:1438
+#: company/models.py:415 label/models.py:112 part/models.py:774
+#: part/models.py:2449 plugin/models.py:40 report/models.py:181
#: templates/InvenTree/settings/mixins/urls.html:13
-#: templates/InvenTree/settings/plugin.html:47
-#: templates/InvenTree/settings/plugin.html:124
+#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin.html:125
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:279
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:561
-#: templates/js/translated/part.js:700 templates/js/translated/part.js:1624
-#: templates/js/translated/stock.js:2327
+#: templates/InvenTree/settings/settings.html:282
+#: templates/js/translated/company.js:641 templates/js/translated/part.js:567
+#: templates/js/translated/part.js:706 templates/js/translated/part.js:1631
+#: templates/js/translated/stock.js:2485
msgid "Name"
msgstr "Nombre"
-#: InvenTree/models.py:284 build/models.py:207
+#: InvenTree/models.py:284 build/models.py:209
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:73 label/models.py:119
-#: order/models.py:122 part/models.py:795 part/templates/part/category.html:74
+#: order/models.py:125 part/models.py:797 part/templates/part/category.html:74
#: part/templates/part/part_base.html:163
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:93
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:327 templates/js/translated/bom.js:540
+#: templates/js/translated/bom.js:339 templates/js/translated/bom.js:552
#: templates/js/translated/build.js:1682 templates/js/translated/company.js:345
#: templates/js/translated/company.js:551
#: templates/js/translated/company.js:840 templates/js/translated/order.js:836
#: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258
-#: templates/js/translated/part.js:620 templates/js/translated/part.js:992
-#: templates/js/translated/part.js:1077 templates/js/translated/part.js:1247
-#: templates/js/translated/part.js:1643 templates/js/translated/part.js:1712
-#: templates/js/translated/stock.js:1569 templates/js/translated/stock.js:2339
-#: templates/js/translated/stock.js:2384
+#: templates/js/translated/part.js:626 templates/js/translated/part.js:999
+#: templates/js/translated/part.js:1084 templates/js/translated/part.js:1254
+#: templates/js/translated/part.js:1650 templates/js/translated/part.js:1719
+#: templates/js/translated/stock.js:1577 templates/js/translated/stock.js:2314
+#: templates/js/translated/stock.js:2497 templates/js/translated/stock.js:2542
msgid "Description"
msgstr "Descripción"
@@ -244,7 +245,7 @@ msgstr "Descripción (opcional)"
msgid "parent"
msgstr "principal"
-#: InvenTree/serializers.py:65 part/models.py:2727
+#: InvenTree/serializers.py:65 part/models.py:2734
msgid "Must be a valid number"
msgstr "Debe ser un número válido"
@@ -252,83 +253,83 @@ msgstr "Debe ser un número válido"
msgid "Filename"
msgstr "Nombre de archivo"
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:661
msgid "German"
msgstr "Alemán"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:662
msgid "Greek"
msgstr "Griego"
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:663
msgid "English"
msgstr "Inglés"
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:664
msgid "Spanish"
msgstr "Español"
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:665
msgid "Spanish (Mexican)"
msgstr "Español (México)"
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:666
msgid "French"
msgstr "Francés"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:667
msgid "Hebrew"
msgstr "Hebreo"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:668
msgid "Italian"
msgstr "Italiano"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:669
msgid "Japanese"
msgstr "Japonés"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:670
msgid "Korean"
msgstr "Coreano"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:671
msgid "Dutch"
msgstr "Holandés"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:672
msgid "Norwegian"
msgstr "Noruego"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:673
msgid "Polish"
msgstr "Polaco"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:674
msgid "Portugese"
msgstr "Portugués"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:675
msgid "Russian"
msgstr "Ruso"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:676
msgid "Swedish"
msgstr "Sueco"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:677
msgid "Thai"
msgstr "Tailandés"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:678
msgid "Turkish"
msgstr "Turco"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:679
msgid "Vietnamese"
msgstr "Vietnamita"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:680
msgid "Chinese"
msgstr "Chino"
@@ -374,7 +375,7 @@ msgstr "Perdido"
msgid "Returned"
msgstr "Devuelto"
-#: InvenTree/status_codes.py:143 order/models.py:941
+#: InvenTree/status_codes.py:143 order/models.py:961
#: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255
msgid "Shipped"
msgstr "Enviado"
@@ -455,7 +456,7 @@ msgstr "Separar del artículo principal"
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2064
+#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2072
msgid "Merged stock items"
msgstr "Artículos de stock combinados"
@@ -543,56 +544,56 @@ msgstr "Los campos de contraseña deben coincidir"
msgid "System Information"
msgstr "Información del sistema"
-#: barcodes/api.py:54 barcodes/api.py:151
+#: barcodes/api.py:54 barcodes/api.py:152
msgid "Must provide barcode_data parameter"
msgstr "Debe proporcionar el parámetro barcode_data"
-#: barcodes/api.py:127
+#: barcodes/api.py:128
msgid "No match found for barcode data"
msgstr "No se encontró ninguna coincidencia para los datos del código de barras"
-#: barcodes/api.py:129
+#: barcodes/api.py:130
msgid "Match found for barcode data"
msgstr "Coincidencia encontrada para datos de códigos de barras"
-#: barcodes/api.py:154
+#: barcodes/api.py:155
msgid "Must provide stockitem parameter"
msgstr "Debe proporcionar el parámetro stockitem"
-#: barcodes/api.py:161
+#: barcodes/api.py:162
msgid "No matching stock item found"
msgstr "No se ha encontrado ningún artículo de stock que coincida"
-#: barcodes/api.py:191
+#: barcodes/api.py:193
msgid "Barcode already matches Stock Item"
msgstr "El código de barras ya corresponde a un Elemento del Stock"
-#: barcodes/api.py:195
+#: barcodes/api.py:197
msgid "Barcode already matches Stock Location"
msgstr "El código de barras ya corresponde a una Ubicación de Stock"
-#: barcodes/api.py:199
+#: barcodes/api.py:201
msgid "Barcode already matches Part"
msgstr "El código de barras ya corresponde a una parte"
-#: barcodes/api.py:205 barcodes/api.py:217
+#: barcodes/api.py:207 barcodes/api.py:219
msgid "Barcode hash already matches Stock Item"
msgstr "La comprobación (hash) del código de barras ya corresponde a un Elemento del Stock"
-#: barcodes/api.py:223
+#: barcodes/api.py:225
msgid "Barcode associated with Stock Item"
msgstr "Código de barras asignado al Elemento del Stock"
-#: build/forms.py:36 build/models.py:1286
+#: build/forms.py:36 build/models.py:1293
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:35 common/models.py:1253
+#: build/templates/build/detail.html:35 common/models.py:1263
#: company/forms.py:42 company/templates/company/supplier_part.html:251
-#: order/models.py:796 order/models.py:1207 order/serializers.py:810
+#: order/models.py:805 order/models.py:1229 order/serializers.py:816
#: order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:145
-#: part/forms.py:161 part/forms.py:177 part/models.py:2629
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144
+#: part/forms.py:160 part/forms.py:176 part/models.py:2636
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:962 part/templates/part/detail.html:1048
+#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -603,7 +604,7 @@ msgstr "Código de barras asignado al Elemento del Stock"
#: stock/templates/stock/item_base.html:181
#: stock/templates/stock/item_base.html:262
#: stock/templates/stock/item_base.html:270
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:555
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:567
#: templates/js/translated/build.js:295 templates/js/translated/build.js:495
#: templates/js/translated/build.js:689 templates/js/translated/build.js:699
#: templates/js/translated/build.js:1075 templates/js/translated/build.js:1422
@@ -611,11 +612,11 @@ msgstr "Código de barras asignado al Elemento del Stock"
#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056
#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859
#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036
-#: templates/js/translated/order.js:2150 templates/js/translated/part.js:900
-#: templates/js/translated/part.js:1855 templates/js/translated/part.js:1978
-#: templates/js/translated/part.js:2056 templates/js/translated/stock.js:383
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:750
-#: templates/js/translated/stock.js:2519 templates/js/translated/stock.js:2621
+#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906
+#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985
+#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:391
+#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758
+#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2779
msgid "Quantity"
msgstr "Cantidad"
@@ -623,9 +624,9 @@ msgstr "Cantidad"
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:41 order/serializers.py:814 stock/forms.py:81
-#: stock/serializers.py:314 templates/js/translated/stock.js:230
-#: templates/js/translated/stock.js:384
+#: build/forms.py:41 order/serializers.py:820 stock/forms.py:81
+#: stock/serializers.py:314 templates/js/translated/stock.js:238
+#: templates/js/translated/stock.js:392
msgid "Serial Numbers"
msgstr "Números de serie"
@@ -649,18 +650,18 @@ msgstr "¿Deseas cancelar?"
msgid "Confirm build cancellation"
msgstr ""
-#: build/models.py:133
+#: build/models.py:135
msgid "Invalid choice for parent build"
msgstr "Opción no válida para el armado principal"
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:139 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:457
+#: templates/js/translated/build.js:457 templates/js/translated/stock.js:2290
msgid "Build Order"
msgstr "Orden de Producción"
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:140 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:92
#: order/templates/order/so_sidebar.html:13
@@ -670,40 +671,40 @@ msgstr "Orden de Producción"
msgid "Build Orders"
msgstr "Ordenes de Producción"
-#: build/models.py:198
+#: build/models.py:200
msgid "Build Order Reference"
msgstr "Referencia de Orden de Producción"
-#: build/models.py:199 order/models.py:210 order/models.py:536
-#: order/models.py:803 part/models.py:2638
+#: build/models.py:201 order/models.py:213 order/models.py:541
+#: order/models.py:812 part/models.py:2645
#: 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/translated/bom.js:547 templates/js/translated/build.js:1179
+#: templates/js/translated/bom.js:559 templates/js/translated/build.js:1179
#: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144
msgid "Reference"
msgstr "Referencia"
-#: build/models.py:210
+#: build/models.py:212
msgid "Brief description of the build"
msgstr "Breve descripción de la producción"
-#: build/models.py:219 build/templates/build/build_base.html:164
+#: build/models.py:221 build/templates/build/build_base.html:164
#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr "Armado Principal"
-#: build/models.py:220
+#: build/models.py:222
msgid "BuildOrder to which this build is allocated"
msgstr "Orden de Producción a la cual esta producción pertenece"
-#: build/models.py:225 build/templates/build/build_base.html:77
+#: build/models.py:227 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
-#: order/models.py:856 order/models.py:930
-#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
-#: part/models.py:2204 part/models.py:2220 part/models.py:2239
-#: part/models.py:2256 part/models.py:2358 part/models.py:2480
-#: part/models.py:2613 part/models.py:2920 part/serializers.py:658
+#: order/models.py:876 order/models.py:950
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359
+#: part/models.py:2211 part/models.py:2227 part/models.py:2246
+#: part/models.py:2263 part/models.py:2365 part/models.py:2487
+#: part/models.py:2620 part/models.py:2927 part/serializers.py:658
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -713,205 +714,205 @@ msgstr "Orden de Producción a la cual esta producción pertenece"
#: templates/InvenTree/search.html:80
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
-#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:326
-#: templates/js/translated/bom.js:505 templates/js/translated/build.js:680
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:338
+#: templates/js/translated/bom.js:517 templates/js/translated/build.js:680
#: templates/js/translated/build.js:1048 templates/js/translated/build.js:1419
#: templates/js/translated/build.js:1687 templates/js/translated/company.js:492
#: templates/js/translated/company.js:749 templates/js/translated/order.js:84
#: templates/js/translated/order.js:586 templates/js/translated/order.js:1004
#: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933
-#: templates/js/translated/order.js:2128 templates/js/translated/part.js:977
-#: templates/js/translated/part.js:1058 templates/js/translated/part.js:1225
-#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:719
-#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1526
-#: templates/js/translated/stock.js:2609
+#: templates/js/translated/order.js:2128 templates/js/translated/part.js:984
+#: templates/js/translated/part.js:1065 templates/js/translated/part.js:1232
+#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727
+#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1534
+#: templates/js/translated/stock.js:2767
msgid "Part"
msgstr "Parte"
-#: build/models.py:233
+#: build/models.py:235
msgid "Select part to build"
msgstr "Seleccionar parte a producir"
-#: build/models.py:238
+#: build/models.py:240
msgid "Sales Order Reference"
msgstr "Referencia de Orden de Venta"
-#: build/models.py:242
+#: build/models.py:244
msgid "SalesOrder to which this build is allocated"
msgstr "Ordenes de Venta a la cual esta producción pertenece"
-#: build/models.py:247 templates/js/translated/build.js:1407
+#: build/models.py:249 templates/js/translated/build.js:1407
#: templates/js/translated/order.js:1564
msgid "Source Location"
msgstr "Ubicación de origen"
-#: build/models.py:251
+#: build/models.py:253
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:256
+#: build/models.py:258
msgid "Destination Location"
msgstr "Ubicación de destino"
-#: build/models.py:260
+#: build/models.py:262
msgid "Select location where the completed items will be stored"
msgstr "Seleccione la ubicación donde se almacenarán los elementos completados"
-#: build/models.py:264
+#: build/models.py:266
msgid "Build Quantity"
msgstr "Cantidad a crear"
-#: build/models.py:267
+#: build/models.py:269
msgid "Number of stock items to build"
msgstr "Número de elementos de stock a construir"
-#: build/models.py:271
+#: build/models.py:273
msgid "Completed items"
msgstr "Elementos completados"
-#: build/models.py:273
+#: build/models.py:275
msgid "Number of stock items which have been completed"
msgstr "Número de artículos de stock que han sido completados"
-#: build/models.py:277 part/templates/part/part_base.html:234
+#: build/models.py:279 part/templates/part/part_base.html:234
msgid "Build Status"
msgstr ""
-#: build/models.py:281
+#: build/models.py:283
msgid "Build status code"
msgstr ""
-#: build/models.py:285 stock/models.py:531
+#: build/models.py:287 stock/models.py:533
msgid "Batch Code"
msgstr "Numero de lote"
-#: build/models.py:289
+#: build/models.py:291
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:126 part/models.py:967
+#: build/models.py:294 order/models.py:129 part/models.py:969
#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271
msgid "Creation Date"
msgstr "Fecha de Creación"
-#: build/models.py:296 order/models.py:558
+#: build/models.py:298 order/models.py:563
msgid "Target completion date"
msgstr "Fecha de finalización objetivo"
-#: build/models.py:297
+#: build/models.py:299
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:252
+#: build/models.py:302 order/models.py:255
#: templates/js/translated/build.js:1758
msgid "Completion Date"
msgstr "Fecha de finalización"
-#: build/models.py:306
+#: build/models.py:308
msgid "completed by"
msgstr "terminado por"
-#: build/models.py:314 templates/js/translated/build.js:1729
+#: build/models.py:316 templates/js/translated/build.js:1729
msgid "Issued by"
msgstr "Emitido por"
-#: build/models.py:315
+#: build/models.py:317
msgid "User who issued this build order"
msgstr "El usuario que emitió esta orden"
-#: build/models.py:323 build/templates/build/build_base.html:185
-#: build/templates/build/detail.html:116 order/models.py:140
+#: build/models.py:325 build/templates/build/build_base.html:185
+#: build/templates/build/detail.html:116 order/models.py:143
#: order/templates/order/order_base.html:170
-#: order/templates/order/sales_order_base.html:182 part/models.py:971
+#: order/templates/order/sales_order_base.html:182 part/models.py:973
#: report/templates/report/inventree_build_order_base.html:159
#: templates/js/translated/build.js:1741 templates/js/translated/order.js:864
msgid "Responsible"
msgstr "Responsable"
-#: build/models.py:324
+#: build/models.py:326
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:329 build/templates/build/detail.html:102
+#: build/models.py:331 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:525
+#: part/templates/part/part_base.html:354 stock/models.py:527
#: stock/templates/stock/item_base.html:373
msgid "External Link"
msgstr "Link externo"
-#: build/models.py:334 build/serializers.py:201
+#: build/models.py:336 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
-#: order/models.py:144 order/models.py:805 order/models.py:1051
+#: order/models.py:147 order/models.py:814 order/models.py:1071
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:17 part/models.py:956
-#: part/templates/part/detail.html:120 part/templates/part/part_sidebar.html:50
+#: order/templates/order/so_sidebar.html:17 part/models.py:958
+#: part/templates/part/detail.html:137 part/templates/part/part_sidebar.html:54
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:597
-#: stock/models.py:1867 stock/models.py:1973 stock/serializers.py:332
-#: stock/serializers.py:639 stock/serializers.py:737 stock/serializers.py:869
-#: stock/templates/stock/stock_sidebar.html:21
-#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:711
+#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:599
+#: stock/models.py:1895 stock/models.py:2001 stock/serializers.py:332
+#: stock/serializers.py:640 stock/serializers.py:738 stock/serializers.py:870
+#: stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:723
#: templates/js/translated/company.js:845 templates/js/translated/order.js:1149
#: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280
-#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1795
+#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1803
msgid "Notes"
msgstr "Notas"
-#: build/models.py:335
+#: build/models.py:337
msgid "Extra build notes"
msgstr ""
-#: build/models.py:710
+#: build/models.py:717
msgid "No build output specified"
msgstr ""
-#: build/models.py:713
+#: build/models.py:720
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:716
+#: build/models.py:723
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1108
+#: build/models.py:1115
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1117
+#: build/models.py:1124
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1127
+#: build/models.py:1134
msgid "Stock item is over-allocated"
msgstr "Artículo de stock sobreasignado"
-#: build/models.py:1133 order/models.py:1167
+#: build/models.py:1140 order/models.py:1189
msgid "Allocation quantity must be greater than zero"
msgstr "Cantidad asignada debe ser mayor que cero"
-#: build/models.py:1139
+#: build/models.py:1146
msgid "Quantity must be 1 for serialized stock"
msgstr "La cantidad debe ser 1 para el stock serializado"
-#: build/models.py:1196
+#: build/models.py:1203
msgid "Selected stock item not found in BOM"
msgstr "Artículo de stock seleccionado no encontrado en BOM"
-#: build/models.py:1256 stock/templates/stock/item_base.html:345
+#: build/models.py:1263 stock/templates/stock/item_base.html:345
#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1660
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1257
+#: build/models.py:1264
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1273 build/serializers.py:388 order/serializers.py:690
-#: order/serializers.py:708 stock/serializers.py:577 stock/serializers.py:695
+#: build/models.py:1280 build/serializers.py:388 order/serializers.py:696
+#: order/serializers.py:714 stock/serializers.py:578 stock/serializers.py:696
#: stock/templates/stock/item_base.html:9
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:367
@@ -920,24 +921,24 @@ msgstr ""
#: templates/js/translated/order.js:85 templates/js/translated/order.js:1577
#: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837
#: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030
-#: templates/js/translated/stock.js:555 templates/js/translated/stock.js:720
-#: templates/js/translated/stock.js:2470
+#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728
+#: templates/js/translated/stock.js:2628
msgid "Stock Item"
msgstr "Artículo de stock"
-#: build/models.py:1274
+#: build/models.py:1281
msgid "Source stock item"
msgstr "Producto original de stock"
-#: build/models.py:1287
+#: build/models.py:1294
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1295
+#: build/models.py:1302
msgid "Install into"
msgstr "Instalar en"
-#: build/models.py:1296
+#: build/models.py:1303
msgid "Destination stock item"
msgstr "Artículo de stock de destino"
@@ -962,16 +963,16 @@ msgid "This build output is not fully allocated"
msgstr ""
#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294
-#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:730
-#: stock/serializers.py:971 stock/templates/stock/item_base.html:313
+#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:731
+#: stock/serializers.py:972 stock/templates/stock/item_base.html:313
#: templates/js/translated/barcode.js:384
#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:480
#: templates/js/translated/build.js:1087 templates/js/translated/order.js:508
#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955
#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044
-#: templates/js/translated/part.js:179 templates/js/translated/stock.js:556
-#: templates/js/translated/stock.js:721 templates/js/translated/stock.js:928
-#: templates/js/translated/stock.js:1676 templates/js/translated/stock.js:2411
+#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564
+#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936
+#: templates/js/translated/stock.js:1684 templates/js/translated/stock.js:2569
msgid "Location"
msgstr "Ubicación"
@@ -980,12 +981,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:137
-#: build/templates/build/detail.html:63 order/models.py:552
+#: build/templates/build/detail.html:63 order/models.py:557
#: order/serializers.py:247 stock/templates/stock/item_base.html:187
#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1716
#: templates/js/translated/order.js:591 templates/js/translated/order.js:840
-#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1651
-#: templates/js/translated/stock.js:2488 templates/js/translated/stock.js:2637
+#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:2646 templates/js/translated/stock.js:2795
msgid "Status"
msgstr "Estado"
@@ -1021,8 +1022,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:313 build/serializers.py:362 part/models.py:2753
-#: part/models.py:2912
+#: build/serializers.py:313 build/serializers.py:362 part/models.py:2760
+#: part/models.py:2919
msgid "BOM Item"
msgstr ""
@@ -1038,16 +1039,16 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:394 stock/serializers.py:584
+#: build/serializers.py:394 stock/serializers.py:585
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:408 order/models.py:277 order/serializers.py:240
-#: stock/models.py:365 stock/models.py:1077 stock/serializers.py:305
+#: build/serializers.py:408 order/models.py:280 order/serializers.py:240
+#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:450 order/serializers.py:741
+#: build/serializers.py:450 order/serializers.py:747
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1060,7 +1061,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:491 order/serializers.py:984
+#: build/serializers.py:491 order/serializers.py:990
msgid "Allocation items must be provided"
msgstr "Debe proporcionar adjudicación de artículos"
@@ -1164,13 +1165,13 @@ msgid "Completed"
msgstr "Completado"
#: build/templates/build/build_base.html:171
-#: build/templates/build/detail.html:95 order/models.py:927
-#: order/models.py:1023 order/templates/order/sales_order_base.html:9
+#: build/templates/build/detail.html:95 order/models.py:947
+#: order/models.py:1043 order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/order.js:1218
+#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2304
msgid "Sales Order"
msgstr "Orden de Venta"
@@ -1224,7 +1225,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:50 order/models.py:878 stock/forms.py:136
+#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:136
#: templates/js/translated/order.js:592 templates/js/translated/order.js:1138
msgid "Destination"
msgstr "Destinación"
@@ -1239,7 +1240,7 @@ msgstr "Partes asignadas"
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:331
-#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2644
+#: templates/js/translated/stock.js:1673 templates/js/translated/stock.js:2802
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:238
msgid "Batch"
@@ -1343,9 +1344,9 @@ msgstr ""
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:107
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:196
-#: part/templates/part/part_sidebar.html:48 stock/templates/stock/item.html:95
-#: stock/templates/stock/stock_sidebar.html:19
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:213
+#: part/templates/part/part_sidebar.html:52 stock/templates/stock/item.html:112
+#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr "Adjuntos"
@@ -1360,8 +1361,8 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:108
#: order/templates/order/sales_order_detail.html:127
#: order/templates/order/sales_order_detail.html:186
-#: part/templates/part/detail.html:124 stock/templates/stock/item.html:115
-#: stock/templates/stock/item.html:205
+#: part/templates/part/detail.html:141 stock/templates/stock/item.html:132
+#: stock/templates/stock/item.html:235
msgid "Edit Notes"
msgstr ""
@@ -1373,7 +1374,7 @@ msgstr ""
msgid "All untracked stock items have been allocated"
msgstr "Todos los artículos de stock no rastreados han sido asignados"
-#: build/templates/build/index.html:18 part/templates/part/detail.html:303
+#: build/templates/build/index.html:18 part/templates/part/detail.html:320
msgid "New Build Order"
msgstr ""
@@ -1453,23 +1454,23 @@ msgstr ""
msgid "Delete Build Order"
msgstr ""
-#: common/files.py:67
+#: common/files.py:65
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
-#: common/files.py:69
+#: common/files.py:67
msgid "Error reading file (invalid encoding)"
msgstr ""
-#: common/files.py:74
+#: common/files.py:72
msgid "Error reading file (invalid format)"
msgstr ""
-#: common/files.py:76
+#: common/files.py:74
msgid "Error reading file (incorrect dimension)"
msgstr ""
-#: common/files.py:78
+#: common/files.py:76
msgid "Error reading file (data could be corrupted)"
msgstr ""
@@ -1490,740 +1491,828 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:344 common/models.py:998 common/models.py:1206
-msgid "Settings key (must be unique - case insensitive"
+#: common/models.py:352
+msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:346
+#: common/models.py:354
msgid "Settings value"
msgstr ""
-#: common/models.py:380
+#: common/models.py:388
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:400
+#: common/models.py:408
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:411
+#: common/models.py:419
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:434
+#: common/models.py:442
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:553
+#: common/models.py:561
msgid "No group"
msgstr ""
-#: common/models.py:595
+#: common/models.py:603
msgid "Restart required"
msgstr ""
-#: common/models.py:596
+#: common/models.py:604
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:603
+#: common/models.py:611
msgid "InvenTree Instance Name"
msgstr ""
-#: common/models.py:605
+#: common/models.py:613
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:609
+#: common/models.py:617
msgid "Use instance name"
msgstr ""
-#: common/models.py:610
+#: common/models.py:618
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:616 company/models.py:100 company/models.py:101
+#: common/models.py:624 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr ""
-#: common/models.py:617
+#: common/models.py:625
msgid "Internal company name"
msgstr ""
-#: common/models.py:622
+#: common/models.py:630
msgid "Base URL"
msgstr ""
-#: common/models.py:623
+#: common/models.py:631
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:629
+#: common/models.py:637
msgid "Default Currency"
msgstr ""
-#: common/models.py:630
+#: common/models.py:638
msgid "Default currency"
msgstr ""
-#: common/models.py:636
+#: common/models.py:644
msgid "Download from URL"
msgstr ""
-#: common/models.py:637
+#: common/models.py:645
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:643 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:651 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
-#: common/models.py:644
+#: common/models.py:652
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:650
+#: common/models.py:658
msgid "IPN Regex"
msgstr ""
-#: common/models.py:651
+#: common/models.py:659
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:655
+#: common/models.py:663
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:656
+#: common/models.py:664
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:662
+#: common/models.py:670
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:663
+#: common/models.py:671
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:669
+#: common/models.py:677
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:670
+#: common/models.py:678
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:676
+#: common/models.py:684
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:677
+#: common/models.py:685
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:683
+#: common/models.py:691
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:684
+#: common/models.py:692
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:690
+#: common/models.py:698
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:691
+#: common/models.py:699
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:697 part/models.py:2482 report/models.py:187
+#: common/models.py:705 part/models.py:2489 report/models.py:187
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:422
msgid "Template"
msgstr ""
-#: common/models.py:698
+#: common/models.py:706
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:704 part/models.py:919 templates/js/translated/bom.js:1068
+#: common/models.py:712 part/models.py:921 templates/js/translated/bom.js:1082
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:434
msgid "Assembly"
msgstr ""
-#: common/models.py:705
+#: common/models.py:713
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:711 part/models.py:925
+#: common/models.py:719 part/models.py:927
#: templates/js/translated/table_filters.js:438
msgid "Component"
msgstr ""
-#: common/models.py:712
+#: common/models.py:720
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:718 part/models.py:936
+#: common/models.py:726 part/models.py:938
msgid "Purchaseable"
msgstr ""
-#: common/models.py:719
+#: common/models.py:727
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:725 part/models.py:941
+#: common/models.py:733 part/models.py:943
#: templates/js/translated/table_filters.js:446
msgid "Salable"
msgstr ""
-#: common/models.py:726
+#: common/models.py:734
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:732 part/models.py:931
+#: common/models.py:740 part/models.py:933
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
#: templates/js/translated/table_filters.js:450
msgid "Trackable"
msgstr ""
-#: common/models.py:733
+#: common/models.py:741
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:739 part/models.py:951
+#: common/models.py:747 part/models.py:953
#: part/templates/part/part_base.html:147
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr ""
-#: common/models.py:740
+#: common/models.py:748
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:746
+#: common/models.py:754
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:747
+#: common/models.py:755
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:753
+#: common/models.py:761
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:754
+#: common/models.py:762
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:765
+#: common/models.py:773
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:766
+#: common/models.py:774
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:772
+#: common/models.py:780
msgid "Show related parts"
msgstr ""
-#: common/models.py:773
+#: common/models.py:781
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:779
+#: common/models.py:787
msgid "Create initial stock"
msgstr ""
-#: common/models.py:780
+#: common/models.py:788
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:786
+#: common/models.py:794
msgid "Internal Prices"
msgstr ""
-#: common/models.py:787
+#: common/models.py:795
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:793
+#: common/models.py:801
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:794
+#: common/models.py:802
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:800
+#: common/models.py:808
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:801
+#: common/models.py:809
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:808
+#: common/models.py:816
msgid "Enable Reports"
msgstr ""
-#: common/models.py:809
+#: common/models.py:817
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:815 templates/stats.html:25
+#: common/models.py:823 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:816
+#: common/models.py:824
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:822
+#: common/models.py:830
msgid "Page Size"
msgstr ""
-#: common/models.py:823
+#: common/models.py:831
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:833
+#: common/models.py:841
msgid "Test Reports"
msgstr ""
-#: common/models.py:834
+#: common/models.py:842
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:840
+#: common/models.py:848
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:841
+#: common/models.py:849
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:847
+#: common/models.py:855
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:848
+#: common/models.py:856
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:854
+#: common/models.py:862
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:855
+#: common/models.py:863
msgid "Number of days stock items are considered stale before expiring"
msgstr "Número de días en que artículos de stock se consideran obsoletos antes de caducar"
-#: common/models.py:857
+#: common/models.py:865
msgid "days"
msgstr ""
-#: common/models.py:862
+#: common/models.py:870
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:863
+#: common/models.py:871
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:869
+#: common/models.py:877
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:870
+#: common/models.py:878
msgid "Enable ownership control over stock locations and items"
msgstr "Habilitar control de propiedad sobre ubicaciones de stock y artículos"
-#: common/models.py:876
-msgid "Group by Part"
-msgstr ""
-
-#: common/models.py:877
-msgid "Group stock items by part reference in table views"
-msgstr "Agrupar artículos de stock por referencia de parte en vistas de tabla"
-
-#: common/models.py:883
+#: common/models.py:884
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:884
+#: common/models.py:885
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:889
+#: common/models.py:890
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:890
+#: common/models.py:891
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:894
+#: common/models.py:895
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:895
+#: common/models.py:896
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:900
+#: common/models.py:901
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:901
+#: common/models.py:902
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:907
+#: common/models.py:908
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:908
+#: common/models.py:909
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:913
+#: common/models.py:914
msgid "Enable registration"
msgstr ""
-#: common/models.py:914
+#: common/models.py:915
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:919
+#: common/models.py:920
msgid "Enable SSO"
msgstr ""
-#: common/models.py:920
+#: common/models.py:921
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:925
+#: common/models.py:926
msgid "Email required"
msgstr ""
-#: common/models.py:926
+#: common/models.py:927
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:931
+#: common/models.py:932
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:932
+#: common/models.py:933
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:937
+#: common/models.py:938
msgid "Mail twice"
msgstr ""
-#: common/models.py:938
+#: common/models.py:939
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:943
+#: common/models.py:944
msgid "Password twice"
msgstr ""
-#: common/models.py:944
+#: common/models.py:945
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:949
+#: common/models.py:950
msgid "Group on signup"
msgstr ""
-#: common/models.py:950
+#: common/models.py:951
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:955
+#: common/models.py:956
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:956
+#: common/models.py:957
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:961
+#: common/models.py:964
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:962
+#: common/models.py:965
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:968
+#: common/models.py:971
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:969
+#: common/models.py:972
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:975
+#: common/models.py:978
msgid "Enable app integration"
msgstr ""
-#: common/models.py:976
+#: common/models.py:979
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:982
+#: common/models.py:985
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:983
+#: common/models.py:986
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1029
+#: common/models.py:992
+msgid "Enable event integration"
+msgstr ""
+
+#: common/models.py:993
+msgid "Enable plugins to respond to internal events"
+msgstr ""
+
+#: common/models.py:1008 common/models.py:1216
+msgid "Settings key (must be unique - case insensitive"
+msgstr ""
+
+#: common/models.py:1039
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1030
+#: common/models.py:1040
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1035
+#: common/models.py:1045
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1036
+#: common/models.py:1046
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1041
+#: common/models.py:1051
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1042
+#: common/models.py:1052
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1047
+#: common/models.py:1057
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1048
+#: common/models.py:1058
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1054
+#: common/models.py:1064
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1055
+#: common/models.py:1065
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1070
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1061
+#: common/models.py:1071
msgid "Show recently changed stock items on the homepage"
msgstr "Mostrar artículos de stock recientemente modificados en la página de inicio"
-#: common/models.py:1066
+#: common/models.py:1076
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1067
+#: common/models.py:1077
msgid "Number of recent stock items to display on index page"
msgstr "Número de elementos de stock recientes a mostrar en la página de índice"
-#: common/models.py:1072
+#: common/models.py:1082
msgid "Show low stock"
msgstr ""
-#: common/models.py:1073
+#: common/models.py:1083
msgid "Show low stock items on the homepage"
msgstr "Mostrar artículos de stock bajo en la página de inicio"
-#: common/models.py:1078
+#: common/models.py:1088
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1079
+#: common/models.py:1089
msgid "Show depleted stock items on the homepage"
msgstr "Mostrar artículos agotados en la página de inicio"
-#: common/models.py:1084
+#: common/models.py:1094
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1085
+#: common/models.py:1095
msgid "Show stock items needed for builds on the homepage"
msgstr "Mostrar elementos de stock necesarios para construir en la página de inicio"
-#: common/models.py:1090
+#: common/models.py:1100
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1091
+#: common/models.py:1101
msgid "Show expired stock items on the homepage"
msgstr "Mostrar artículos de stock caducados en la página de inicio"
-#: common/models.py:1096
+#: common/models.py:1106
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1097
+#: common/models.py:1107
msgid "Show stale stock items on the homepage"
msgstr "Mostrar elementos de stock obsoletos en la página de inicio"
-#: common/models.py:1102
+#: common/models.py:1112
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1103
+#: common/models.py:1113
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1108
+#: common/models.py:1118
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1109
+#: common/models.py:1119
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1114
+#: common/models.py:1124
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1115
+#: common/models.py:1125
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1120
+#: common/models.py:1130
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1121
+#: common/models.py:1131
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1136
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1127
+#: common/models.py:1137
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1142
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1143
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1149
msgid "Inline label display"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1150
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1156
msgid "Inline report display"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1157
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1163
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1164
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1170
msgid "Search Show Stock"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1171
msgid "Display stock levels in search preview window"
msgstr ""
-#: common/models.py:1167
+#: common/models.py:1177
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1178
msgid "Hide inactive parts in search preview window"
msgstr ""
-#: common/models.py:1174
+#: common/models.py:1184
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1175
+#: common/models.py:1185
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1181
+#: common/models.py:1191
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1182
+#: common/models.py:1192
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1188
+#: common/models.py:1198
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1199
msgid "InvenTree navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1254 company/forms.py:43
+#: common/models.py:1264 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1261 company/serializers.py:264
+#: common/models.py:1271 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:909 templates/js/translated/part.js:1860
+#: templates/js/translated/part.js:915 templates/js/translated/part.js:1867
msgid "Price"
msgstr ""
-#: common/models.py:1262
+#: common/models.py:1272
msgid "Unit price at specified quantity"
msgstr ""
+#: common/models.py:1429 common/models.py:1568
+msgid "Endpoint"
+msgstr ""
+
+#: common/models.py:1430
+msgid "Endpoint at which this webhook is received"
+msgstr ""
+
+#: common/models.py:1439
+msgid "Name for this webhook"
+msgstr ""
+
+#: common/models.py:1444 part/models.py:948 plugin/models.py:46
+#: templates/js/translated/table_filters.js:34
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:295
+#: templates/js/translated/table_filters.js:417
+msgid "Active"
+msgstr ""
+
+#: common/models.py:1445
+msgid "Is this webhook active"
+msgstr ""
+
+#: common/models.py:1459
+msgid "Token"
+msgstr ""
+
+#: common/models.py:1460
+msgid "Token for access"
+msgstr ""
+
+#: common/models.py:1467
+msgid "Secret"
+msgstr ""
+
+#: common/models.py:1468
+msgid "Shared secret for HMAC"
+msgstr ""
+
+#: common/models.py:1535
+msgid "Message ID"
+msgstr ""
+
+#: common/models.py:1536
+msgid "Unique identifier for this message"
+msgstr ""
+
+#: common/models.py:1544
+msgid "Host"
+msgstr ""
+
+#: common/models.py:1545
+msgid "Host from which this message was received"
+msgstr ""
+
+#: common/models.py:1552
+msgid "Header"
+msgstr ""
+
+#: common/models.py:1553
+msgid "Header of this message"
+msgstr ""
+
+#: common/models.py:1559
+msgid "Body"
+msgstr ""
+
+#: common/models.py:1560
+msgid "Body of this message"
+msgstr ""
+
+#: common/models.py:1569
+msgid "Endpoint on which this message was received"
+msgstr ""
+
+#: common/models.py:1574
+msgid "Worked on"
+msgstr ""
+
+#: common/models.py:1575
+msgid "Was the work on this message finished?"
+msgstr ""
+
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
#: part/templates/part/bom_upload/upload_file.html:52
-#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
-#: part/views.py:764
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:213
+#: part/views.py:773
msgid "Upload File"
msgstr ""
#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
-#: part/views.py:765
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:214
+#: part/views.py:774
msgid "Match Fields"
msgstr ""
@@ -2315,7 +2404,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:838
+#: company/models.py:139 part/models.py:840
msgid "Image"
msgstr ""
@@ -2352,8 +2441,8 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:469
-#: stock/templates/stock/item_base.html:142
+#: company/models.py:320 company/models.py:535 stock/models.py:471
+#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:328
msgid "Base Part"
msgstr ""
@@ -2380,7 +2469,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:818 templates/js/translated/order.js:1038
-#: templates/js/translated/part.js:245 templates/js/translated/part.js:889
+#: templates/js/translated/part.js:245 templates/js/translated/part.js:895
msgid "MPN"
msgstr ""
@@ -2409,8 +2498,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1960 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:709 templates/js/translated/stock.js:1296
+#: stock/models.py:1988 templates/js/translated/company.js:647
+#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1304
msgid "Value"
msgstr ""
@@ -2418,10 +2507,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:913 part/models.py:2450
+#: company/models.py:429 part/models.py:915 part/models.py:2457
#: part/templates/part/part_base.html:288
-#: templates/InvenTree/settings/settings.html:284
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:715
+#: templates/InvenTree/settings/settings.html:287
+#: templates/js/translated/company.js:653 templates/js/translated/part.js:721
msgid "Units"
msgstr ""
@@ -2434,13 +2523,13 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:78
-#: company/templates/company/supplier_part.html:87 order/models.py:224
+#: company/templates/company/supplier_part.html:87 order/models.py:227
#: order/templates/order/order_base.html:112
-#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
-#: part/bom.py:247 stock/templates/stock/item_base.html:397
+#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237
+#: part/bom.py:265 stock/templates/stock/item_base.html:397
#: templates/js/translated/company.js:337
#: templates/js/translated/company.js:774 templates/js/translated/order.js:823
-#: templates/js/translated/part.js:215 templates/js/translated/part.js:857
+#: templates/js/translated/part.js:215 templates/js/translated/part.js:863
#: templates/js/translated/table_filters.js:393
msgid "Supplier"
msgstr ""
@@ -2450,8 +2539,8 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:1025
-#: templates/js/translated/part.js:226 templates/js/translated/part.js:875
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1025
+#: templates/js/translated/part.js:226 templates/js/translated/part.js:881
msgid "SKU"
msgstr ""
@@ -2472,22 +2561,22 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:119
-#: part/models.py:2641 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2648 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:580 part/models.py:1779
+#: company/models.py:580 part/models.py:1781
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1779
+#: company/models.py:580 part/models.py:1781
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:493 stock/templates/stock/item_base.html:338
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1791
+#: stock/models.py:495 stock/templates/stock/item_base.html:338
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1799
msgid "Packaging"
msgstr ""
@@ -2495,7 +2584,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1781
+#: company/models.py:584 part/models.py:1783
msgid "multiple"
msgstr ""
@@ -2554,12 +2643,12 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:83 order/models.py:547
-#: order/templates/order/sales_order_base.html:115 stock/models.py:512
-#: stock/models.py:513 stock/serializers.py:625
+#: company/templates/company/company_base.html:83 order/models.py:552
+#: order/templates/order/sales_order_base.html:115 stock/models.py:514
+#: stock/models.py:515 stock/serializers.py:626
#: stock/templates/stock/item_base.html:290
#: templates/js/translated/company.js:329 templates/js/translated/order.js:1240
-#: templates/js/translated/stock.js:2452
+#: templates/js/translated/stock.js:2610
#: templates/js/translated/table_filters.js:397
msgid "Customer"
msgstr ""
@@ -2590,7 +2679,7 @@ msgstr ""
#: company/templates/company/detail.html:20
#: company/templates/company/manufacturer_part.html:118
-#: part/templates/part/detail.html:336
+#: part/templates/part/detail.html:353
msgid "New Supplier Part"
msgstr ""
@@ -2598,8 +2687,8 @@ msgstr ""
#: company/templates/company/detail.html:79
#: company/templates/company/manufacturer_part.html:127
#: company/templates/company/manufacturer_part.html:156
-#: part/templates/part/category.html:171 part/templates/part/detail.html:345
-#: part/templates/part/detail.html:374
+#: part/templates/part/category.html:171 part/templates/part/detail.html:362
+#: part/templates/part/detail.html:391
msgid "Options"
msgstr ""
@@ -2627,7 +2716,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:364
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:381
msgid "New Manufacturer Part"
msgstr ""
@@ -2641,7 +2730,7 @@ msgstr ""
#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:68 part/templates/part/part_sidebar.html:33
+#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
@@ -2663,7 +2752,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:91 part/templates/part/part_sidebar.html:37
+#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:41
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
@@ -2691,13 +2780,13 @@ msgstr ""
#: company/templates/company/detail.html:384
#: company/templates/company/manufacturer_part.html:215
-#: part/templates/part/detail.html:418
+#: part/templates/part/detail.html:435
msgid "Delete Supplier Parts?"
msgstr ""
#: company/templates/company/detail.html:385
#: company/templates/company/manufacturer_part.html:216
-#: part/templates/part/detail.html:419
+#: part/templates/part/detail.html:436
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2714,7 +2803,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:34
#: company/templates/company/supplier_part.html:159
-#: part/templates/part/detail.html:71 part/templates/part/part_base.html:76
+#: part/templates/part/detail.html:88 part/templates/part/part_base.html:76
msgid "Order part"
msgstr ""
@@ -2735,34 +2824,34 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:114
#: company/templates/company/supplier_part.html:15 company/views.py:49
-#: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163
+#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:163
#: templates/InvenTree/search.html:188 templates/navbar.html:45
msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
-#: part/templates/part/detail.html:347
+#: part/templates/part/detail.html:364
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
#: company/templates/company/manufacturer_part.html:158
#: company/templates/company/manufacturer_part.html:254
-#: part/templates/part/detail.html:347 part/templates/part/detail.html:376
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:393
#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31
-#: users/models.py:210
+#: users/models.py:212
msgid "Delete"
msgstr ""
#: company/templates/company/manufacturer_part.html:143
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:17
-#: part/templates/part/detail.html:170 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:187 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:147
-#: part/templates/part/detail.html:175
+#: part/templates/part/detail.html:192
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
@@ -2773,7 +2862,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:191
-#: part/templates/part/detail.html:862
+#: part/templates/part/detail.html:892
msgid "Add Parameter"
msgstr ""
@@ -2802,9 +2891,9 @@ msgid "Assigned Stock Items"
msgstr "Artículos de Stock Asignados"
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:477
+#: company/templates/company/supplier_part.html:24 stock/models.py:479
#: stock/templates/stock/item_base.html:402
-#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1748
+#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1756
msgid "Supplier Part"
msgstr ""
@@ -2830,7 +2919,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:167
-#: templates/js/translated/stock.js:360
+#: templates/js/translated/stock.js:368
msgid "New Stock Item"
msgstr ""
@@ -2840,7 +2929,7 @@ msgid "Supplier Part Orders"
msgstr ""
#: company/templates/company/supplier_part.html:160
-#: part/templates/part/detail.html:72
+#: part/templates/part/detail.html:89
msgid "Order Part"
msgstr ""
@@ -2851,7 +2940,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1619
+#: part/templates/part/prices.html:271 part/views.py:1628
msgid "Add Price Break"
msgstr ""
@@ -2859,11 +2948,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1681
+#: company/templates/company/supplier_part.html:224 part/views.py:1690
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1667
+#: company/templates/company/supplier_part.html:238 part/views.py:1676
msgid "Edit Price Break"
msgstr ""
@@ -2881,10 +2970,10 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:150
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/bom.js:328 templates/js/translated/part.js:489
-#: templates/js/translated/part.js:624 templates/js/translated/part.js:1118
-#: templates/js/translated/part.js:1279 templates/js/translated/stock.js:927
-#: templates/js/translated/stock.js:1580 templates/navbar.html:28
+#: templates/js/translated/bom.js:340 templates/js/translated/part.js:495
+#: templates/js/translated/part.js:630 templates/js/translated/part.js:1125
+#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:935
+#: templates/js/translated/stock.js:1588 templates/navbar.html:28
msgid "Stock"
msgstr ""
@@ -2907,8 +2996,8 @@ msgstr ""
#: stock/templates/stock/location.html:151
#: stock/templates/stock/location.html:163
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2351
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2509
+#: templates/stats.html:105 templates/stats.html:114 users/models.py:43
msgid "Stock Items"
msgstr "Artículos de Stock"
@@ -2937,20 +3026,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:584
+#: company/views.py:129 part/views.py:593
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:616
+#: company/views.py:158 part/views.py:625
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:623
+#: company/views.py:165 part/views.py:632
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:632
+#: company/views.py:174 part/views.py:641
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3036,282 +3125,282 @@ msgstr ""
msgid "Cancel order"
msgstr ""
-#: order/models.py:122
+#: order/models.py:125
msgid "Order description"
msgstr ""
-#: order/models.py:124
+#: order/models.py:127
msgid "Link to external page"
msgstr ""
-#: order/models.py:132
+#: order/models.py:135
msgid "Created By"
msgstr ""
-#: order/models.py:139
+#: order/models.py:142
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:144
+#: order/models.py:147
msgid "Order notes"
msgstr ""
-#: order/models.py:211 order/models.py:537
+#: order/models.py:214 order/models.py:542
msgid "Order reference"
msgstr ""
-#: order/models.py:216 order/models.py:552
+#: order/models.py:219 order/models.py:557
msgid "Purchase order status"
msgstr ""
-#: order/models.py:225
+#: order/models.py:228
msgid "Company from which the items are being ordered"
msgstr "Empresa de la que se están pidiendo los artículos"
-#: order/models.py:228 order/templates/order/order_base.html:118
+#: order/models.py:231 order/templates/order/order_base.html:118
#: templates/js/translated/order.js:832
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:228
+#: order/models.py:231
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:235
+#: order/models.py:238
msgid "received by"
msgstr ""
-#: order/models.py:240
+#: order/models.py:243
msgid "Issue Date"
msgstr ""
-#: order/models.py:241
+#: order/models.py:244
msgid "Date order was issued"
msgstr ""
-#: order/models.py:246
+#: order/models.py:249
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:247
+#: order/models.py:250
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:253
+#: order/models.py:256
msgid "Date order was completed"
msgstr ""
-#: order/models.py:282
+#: order/models.py:285
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:411
-msgid "Quantity must be an integer"
-msgstr ""
-
-#: order/models.py:415
+#: order/models.py:420
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:548
+#: order/models.py:553
msgid "Company to which the items are being sold"
msgstr "Empresa a la que se venden los artículos"
-#: order/models.py:554
+#: order/models.py:559
msgid "Customer Reference "
msgstr ""
-#: order/models.py:554
+#: order/models.py:559
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:559
+#: order/models.py:564
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:562 order/models.py:1028
+#: order/models.py:567 order/models.py:1048
#: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429
msgid "Shipment Date"
msgstr ""
-#: order/models.py:569
+#: order/models.py:574
msgid "shipped by"
msgstr ""
-#: order/models.py:635
+#: order/models.py:640
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:639
+#: order/models.py:644
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:642
+#: order/models.py:647
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:645
+#: order/models.py:650
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:797
+#: order/models.py:806
msgid "Item quantity"
msgstr ""
-#: order/models.py:803
+#: order/models.py:812
msgid "Line item reference"
msgstr ""
-#: order/models.py:805
+#: order/models.py:814
msgid "Line item notes"
msgstr ""
-#: order/models.py:835 order/models.py:926 order/models.py:1022
-#: templates/js/translated/order.js:1820
+#: order/models.py:842
+msgid "Supplier part must match supplier"
+msgstr ""
+
+#: order/models.py:855 order/models.py:946 order/models.py:1042
+#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2271
msgid "Order"
msgstr ""
-#: order/models.py:836 order/templates/order/order_base.html:9
+#: order/models.py:856 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:352
-#: templates/js/translated/order.js:801 templates/js/translated/part.js:832
-#: templates/js/translated/stock.js:1725 templates/js/translated/stock.js:2433
+#: templates/js/translated/order.js:801 templates/js/translated/part.js:838
+#: templates/js/translated/stock.js:1733 templates/js/translated/stock.js:2591
msgid "Purchase Order"
msgstr ""
-#: order/models.py:857
+#: order/models.py:877
msgid "Supplier part"
msgstr ""
-#: order/models.py:864 order/templates/order/order_base.html:163
+#: order/models.py:884 order/templates/order/order_base.html:163
#: templates/js/translated/order.js:589 templates/js/translated/order.js:1118
-#: templates/js/translated/part.js:904 templates/js/translated/part.js:930
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:937
#: templates/js/translated/table_filters.js:317
msgid "Received"
msgstr ""
-#: order/models.py:865
+#: order/models.py:885
msgid "Number of items received"
msgstr "Número de artículos recibidos"
-#: order/models.py:872 part/templates/part/prices.html:176 stock/models.py:606
+#: order/models.py:892 part/templates/part/prices.html:176 stock/models.py:608
#: stock/serializers.py:170 stock/templates/stock/item_base.html:359
-#: templates/js/translated/stock.js:1779
+#: templates/js/translated/stock.js:1787
msgid "Purchase Price"
msgstr ""
-#: order/models.py:873
+#: order/models.py:893
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:881
+#: order/models.py:901
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:936 part/templates/part/part_pricing.html:112
+#: order/models.py:956 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:937
+#: order/models.py:957
msgid "Unit sale price"
msgstr ""
-#: order/models.py:942
+#: order/models.py:962
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1029
+#: order/models.py:1049
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1036
+#: order/models.py:1056
msgid "Checked By"
msgstr ""
-#: order/models.py:1037
+#: order/models.py:1057
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1045
+#: order/models.py:1065
msgid "Shipment number"
msgstr ""
-#: order/models.py:1052
+#: order/models.py:1072
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1059
+#: order/models.py:1079
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1060
+#: order/models.py:1080
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1070
+#: order/models.py:1090
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1073
+#: order/models.py:1093
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1149 order/models.py:1151
+#: order/models.py:1171 order/models.py:1173
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1155
+#: order/models.py:1177
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1157
+#: order/models.py:1179
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1160
+#: order/models.py:1182
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1164
+#: order/models.py:1186
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:1170 order/serializers.py:734
+#: order/models.py:1192 order/serializers.py:740
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1173
+#: order/models.py:1195
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1174
+#: order/models.py:1196
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1182
+#: order/models.py:1204
msgid "Line"
msgstr ""
-#: order/models.py:1190 order/serializers.py:825 order/serializers.py:953
-#: templates/js/translated/model_renderers.js:251
+#: order/models.py:1212 order/serializers.py:831 order/serializers.py:959
+#: templates/js/translated/model_renderers.js:285
msgid "Shipment"
msgstr ""
-#: order/models.py:1191
+#: order/models.py:1213
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1203
+#: order/models.py:1225
msgid "Item"
msgstr ""
-#: order/models.py:1204
+#: order/models.py:1226
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1207
+#: order/models.py:1229
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3319,7 +3408,7 @@ msgstr ""
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:211 order/serializers.py:790
+#: order/serializers.py:211 order/serializers.py:796
msgid "Line Item"
msgstr ""
@@ -3355,39 +3444,39 @@ msgstr ""
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:581
+#: order/serializers.py:587
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:649
+#: order/serializers.py:655
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:699 order/serializers.py:802
+#: order/serializers.py:705 order/serializers.py:808
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:721
+#: order/serializers.py:727
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:815
+#: order/serializers.py:821
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:839 order/serializers.py:964
+#: order/serializers.py:845 order/serializers.py:970
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:842 order/serializers.py:967
+#: order/serializers.py:848 order/serializers.py:973
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:894
+#: order/serializers.py:900
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:904
+#: order/serializers.py:910
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3441,6 +3530,7 @@ msgstr ""
#: order/templates/order/order_base.html:94
#: order/templates/order/sales_order_base.html:89
+#: templates/js/translated/stock.js:2327
msgid "Order Status"
msgstr ""
@@ -3538,7 +3628,7 @@ msgstr ""
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/build.js:300 templates/js/translated/build.js:1311
#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488
-#: templates/js/translated/stock.js:593 templates/js/translated/stock.js:761
+#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769
msgid "Remove row"
msgstr ""
@@ -3729,7 +3819,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:48
-#: templates/js/translated/bom.js:720 templates/js/translated/build.js:1243
+#: templates/js/translated/bom.js:732 templates/js/translated/build.js:1243
msgid "Actions"
msgstr ""
@@ -3832,447 +3922,448 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:125 part/models.py:81 part/models.py:847
+#: part/bom.py:125 part/models.py:83 part/models.py:849
#: part/templates/part/category.html:108 part/templates/part/part_base.html:338
msgid "Default Location"
msgstr ""
-#: part/bom.py:126 part/templates/part/part_base.html:185
+#: part/bom.py:126 templates/email/low_stock_notification.html:17
+msgid "Total Stock"
+msgstr ""
+
+#: part/bom.py:127 part/templates/part/part_base.html:185
msgid "Available Stock"
msgstr ""
-#: part/forms.py:85
+#: part/bom.py:128 part/templates/part/part_base.html:203
+#: templates/js/translated/part.js:1301
+msgid "On Order"
+msgstr ""
+
+#: part/forms.py:84
msgid "Select part category"
msgstr ""
-#: part/forms.py:122
+#: part/forms.py:121
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:126
+#: part/forms.py:125
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:146
+#: part/forms.py:145
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:82
+#: part/models.py:84
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:85
+#: part/models.py:87
msgid "Default keywords"
msgstr ""
-#: part/models.py:85
+#: part/models.py:87
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:95 part/models.py:2526 part/templates/part/category.html:15
+#: part/models.py:97 part/models.py:2533 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:96 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/stats.html:84
+#: part/models.py:98 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/stats.html:96
#: users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:358 part/templates/part/cat_link.html:3
+#: part/models.py:360 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:17 part/templates/part/category.html:133
#: part/templates/part/category.html:153
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:37
-#: templates/js/translated/part.js:1656 templates/navbar.html:21
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+#: templates/js/translated/part.js:1663 templates/navbar.html:21
+#: templates/stats.html:92 templates/stats.html:101 users/models.py:41
msgid "Parts"
msgstr ""
-#: part/models.py:450
+#: part/models.py:452
msgid "Invalid choice for parent part"
msgstr "Parte inválida para parte principal"
-#: part/models.py:500 part/models.py:512
+#: part/models.py:502 part/models.py:514
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:642
+#: part/models.py:644
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:646
+#: part/models.py:648
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:651
+#: part/models.py:653
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:746
+#: part/models.py:748
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:771
+#: part/models.py:773
msgid "Part name"
msgstr ""
-#: part/models.py:778
+#: part/models.py:780
msgid "Is Template"
msgstr ""
-#: part/models.py:779
+#: part/models.py:781
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:789
+#: part/models.py:791
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:790
+#: part/models.py:792
msgid "Variant Of"
msgstr ""
-#: part/models.py:796
+#: part/models.py:798
msgid "Part description"
msgstr ""
-#: part/models.py:801 part/templates/part/category.html:86
+#: part/models.py:803 part/templates/part/category.html:86
#: part/templates/part/part_base.html:302
msgid "Keywords"
msgstr ""
-#: part/models.py:802
+#: part/models.py:804
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:809 part/models.py:2276 part/models.py:2525
+#: part/models.py:811 part/models.py:2283 part/models.py:2532
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:183
-#: templates/js/translated/part.js:1261
+#: templates/InvenTree/settings/settings.html:186
+#: templates/js/translated/part.js:1268
msgid "Category"
msgstr ""
-#: part/models.py:810
+#: part/models.py:812
msgid "Part category"
msgstr ""
-#: part/models.py:815 part/templates/part/part_base.html:274
-#: templates/js/translated/part.js:612 templates/js/translated/part.js:1214
-#: templates/js/translated/stock.js:1552
+#: part/models.py:817 part/templates/part/part_base.html:274
+#: templates/js/translated/part.js:618 templates/js/translated/part.js:1221
+#: templates/js/translated/stock.js:1560
msgid "IPN"
msgstr ""
-#: part/models.py:816
+#: part/models.py:818
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:822
+#: part/models.py:824
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:823 part/templates/part/part_base.html:281
-#: report/models.py:200 templates/js/translated/part.js:616
+#: part/models.py:825 part/templates/part/part_base.html:281
+#: report/models.py:200 templates/js/translated/part.js:622
msgid "Revision"
msgstr ""
-#: part/models.py:845
+#: part/models.py:847
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:892 part/templates/part/part_base.html:347
+#: part/models.py:894 part/templates/part/part_base.html:347
msgid "Default Supplier"
msgstr ""
-#: part/models.py:893
+#: part/models.py:895
msgid "Default supplier part"
msgstr ""
-#: part/models.py:900
+#: part/models.py:902
msgid "Default Expiry"
msgstr ""
-#: part/models.py:901
+#: part/models.py:903
msgid "Expiry time (in days) for stock items of this part"
msgstr "Tiempo de expiración (en días) para los artículos de stock de esta parte"
-#: part/models.py:906 part/templates/part/part_base.html:196
+#: part/models.py:908 part/templates/part/part_base.html:196
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:907
+#: part/models.py:909
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:914
+#: part/models.py:916
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:920
+#: part/models.py:922
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:926
+#: part/models.py:928
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:932
+#: part/models.py:934
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:937
+#: part/models.py:939
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:942
+#: part/models.py:944
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:946 plugin/models.py:46
-#: templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:96
-#: templates/js/translated/table_filters.js:295
-#: templates/js/translated/table_filters.js:417
-msgid "Active"
-msgstr ""
-
-#: part/models.py:947
+#: part/models.py:949
msgid "Is this part active?"
msgstr ""
-#: part/models.py:952
+#: part/models.py:954
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:957
+#: part/models.py:959
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:960
+#: part/models.py:962
msgid "BOM checksum"
msgstr ""
-#: part/models.py:960
+#: part/models.py:962
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:963
+#: part/models.py:965
msgid "BOM checked by"
msgstr ""
-#: part/models.py:965
+#: part/models.py:967
msgid "BOM checked date"
msgstr ""
-#: part/models.py:969
+#: part/models.py:971
msgid "Creation User"
msgstr ""
-#: part/models.py:1781
+#: part/models.py:1783
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2326
+#: part/models.py:2333
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2343
+#: part/models.py:2350
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2363 templates/js/translated/part.js:1707
-#: templates/js/translated/stock.js:1276
+#: part/models.py:2370 templates/js/translated/part.js:1714
+#: templates/js/translated/stock.js:1284
msgid "Test Name"
msgstr ""
-#: part/models.py:2364
+#: part/models.py:2371
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2376
msgid "Test Description"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2377
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2375 templates/js/translated/part.js:1716
+#: part/models.py:2382 templates/js/translated/part.js:1723
#: templates/js/translated/table_filters.js:281
msgid "Required"
msgstr ""
-#: part/models.py:2376
+#: part/models.py:2383
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2381 templates/js/translated/part.js:1724
+#: part/models.py:2388 templates/js/translated/part.js:1731
msgid "Requires Value"
msgstr ""
-#: part/models.py:2382
+#: part/models.py:2389
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2387 templates/js/translated/part.js:1731
+#: part/models.py:2394 templates/js/translated/part.js:1738
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2388
+#: part/models.py:2395
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2399
+#: part/models.py:2406
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2435
+#: part/models.py:2442
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2443
+#: part/models.py:2450
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2450
+#: part/models.py:2457
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2480
+#: part/models.py:2487
msgid "Parent Part"
msgstr "Parte principal"
-#: part/models.py:2482 part/models.py:2531 part/models.py:2532
-#: templates/InvenTree/settings/settings.html:178
+#: part/models.py:2489 part/models.py:2538 part/models.py:2539
+#: templates/InvenTree/settings/settings.html:181
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2484
+#: part/models.py:2491
msgid "Data"
msgstr ""
-#: part/models.py:2484
+#: part/models.py:2491
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2536 templates/InvenTree/settings/settings.html:187
+#: part/models.py:2543 templates/InvenTree/settings/settings.html:190
msgid "Default Value"
msgstr ""
-#: part/models.py:2537
+#: part/models.py:2544
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2614
+#: part/models.py:2621
msgid "Select parent part"
msgstr "Seleccionar parte principal"
-#: part/models.py:2622
+#: part/models.py:2629
msgid "Sub part"
msgstr ""
-#: part/models.py:2623
+#: part/models.py:2630
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2629
+#: part/models.py:2636
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2631 templates/js/translated/bom.js:566
-#: templates/js/translated/bom.js:640
+#: part/models.py:2638 templates/js/translated/bom.js:578
+#: templates/js/translated/bom.js:652
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2638
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2634
+#: part/models.py:2641
msgid "Overage"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2642
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2638
+#: part/models.py:2645
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2641
+#: part/models.py:2648
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2643
+#: part/models.py:2650
msgid "Checksum"
msgstr ""
-#: part/models.py:2643
+#: part/models.py:2650
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2647 templates/js/translated/bom.js:657
+#: part/models.py:2654 templates/js/translated/bom.js:669
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2648
+#: part/models.py:2655
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2653 templates/js/translated/bom.js:649
+#: part/models.py:2660 templates/js/translated/bom.js:661
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2654
+#: part/models.py:2661
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2739 stock/models.py:355
+#: part/models.py:2746 stock/models.py:357
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2748 part/models.py:2750
+#: part/models.py:2755 part/models.py:2757
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2879
+#: part/models.py:2886
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2908
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2920
msgid "Parent BOM item"
msgstr "Artículo BOM principal"
-#: part/models.py:2921
+#: part/models.py:2928
msgid "Substitute part"
msgstr ""
-#: part/models.py:2932
+#: part/models.py:2939
msgid "Part 1"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2943
msgid "Part 2"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2943
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2968
+#: part/models.py:2975
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4327,7 +4418,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:253
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:270
msgid "BOM actions"
msgstr ""
@@ -4499,7 +4590,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:348
msgid "Duplicate Part"
msgstr ""
@@ -4533,145 +4624,149 @@ msgid "Showing stock for all variants of %(full_name)s"
msgstr ""
#: part/templates/part/detail.html:43
+msgid "Part Stock Allocations"
+msgstr ""
+
+#: part/templates/part/detail.html:60
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:48
+#: part/templates/part/detail.html:65
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:105
+#: part/templates/part/detail.html:122
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:142
+#: part/templates/part/detail.html:159
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:146
+#: part/templates/part/detail.html:163
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:147
+#: part/templates/part/detail.html:164
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:174
+#: part/templates/part/detail.html:191
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:45
+#: part/templates/part/detail.html:228 part/templates/part/part_sidebar.html:49
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:215 part/templates/part/detail.html:216
+#: part/templates/part/detail.html:232 part/templates/part/detail.html:233
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:236 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:253 part/templates/part/part_sidebar.html:17
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:241
+#: part/templates/part/detail.html:258
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:245 templates/js/translated/bom.js:70
+#: part/templates/part/detail.html:262 templates/js/translated/bom.js:70
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:247
+#: part/templates/part/detail.html:264
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:257
+#: part/templates/part/detail.html:274
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:259 templates/js/translated/part.js:272
+#: part/templates/part/detail.html:276 templates/js/translated/part.js:272
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:278
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:266
+#: part/templates/part/detail.html:283
msgid "New BOM Item"
msgstr ""
-#: part/templates/part/detail.html:267
+#: part/templates/part/detail.html:284
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:280
+#: part/templates/part/detail.html:297
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:297
+#: part/templates/part/detail.html:314
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:322
+#: part/templates/part/detail.html:339
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:332
+#: part/templates/part/detail.html:349
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:360
+#: part/templates/part/detail.html:377
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:393
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:558
+#: part/templates/part/detail.html:575
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:559
+#: part/templates/part/detail.html:576
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:608
+#: part/templates/part/detail.html:625
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:652
+#: part/templates/part/detail.html:682
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:660
+#: part/templates/part/detail.html:690
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:755
+#: part/templates/part/detail.html:785
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:812
+#: part/templates/part/detail.html:842
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:925
+#: part/templates/part/detail.html:955
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:937
+#: part/templates/part/detail.html:967
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:949
+#: part/templates/part/detail.html:979
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1038
+#: part/templates/part/detail.html:1068
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4786,7 +4881,7 @@ msgstr ""
#: templates/js/translated/company.js:508
#: templates/js/translated/company.js:765
#: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:527 templates/js/translated/part.js:604
+#: templates/js/translated/part.js:533 templates/js/translated/part.js:610
msgid "Inactive"
msgstr ""
@@ -4805,10 +4900,6 @@ msgstr ""
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1294
-msgid "On Order"
-msgstr ""
-
#: part/templates/part/part_base.html:210 templates/InvenTree/index.html:178
msgid "Required for Build Orders"
msgstr ""
@@ -4821,12 +4912,12 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:678
+#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:690
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1125
-#: templates/js/translated/part.js:1298
+#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1132
+#: templates/js/translated/part.js:1305
msgid "Building"
msgstr ""
@@ -4878,7 +4969,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:632
+#: templates/js/translated/bom.js:644
msgid "No supplier pricing available"
msgstr ""
@@ -4920,7 +5011,12 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/templates/part/part_sidebar.html:41
+#: part/templates/part/part_sidebar.html:31
+#: stock/templates/stock/stock_sidebar.html:8
+msgid "Allocations"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:45
msgid "Test Templates"
msgstr ""
@@ -4993,7 +5089,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:626
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:638
msgid "Supplier Cost"
msgstr ""
@@ -5015,7 +5111,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1690
+#: part/templates/part/prices.html:215 part/views.py:1699
msgid "Add Internal Price Break"
msgstr ""
@@ -5035,9 +5131,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:588
-#: templates/js/translated/part.js:491 templates/js/translated/part.js:1115
-#: templates/js/translated/part.js:1302
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:600
+#: templates/js/translated/part.js:497 templates/js/translated/part.js:1122
+#: templates/js/translated/part.js:1309
msgid "No Stock"
msgstr ""
@@ -5054,116 +5150,116 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:116
+#: part/templatetags/inventree_extras.py:125
msgid "Unknown database"
msgstr ""
-#: part/views.py:92
+#: part/views.py:93
msgid "Set Part Category"
msgstr ""
-#: part/views.py:142
+#: part/views.py:143
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:214
+#: part/views.py:215
msgid "Match References"
msgstr ""
-#: part/views.py:502
+#: part/views.py:511
msgid "None"
msgstr ""
-#: part/views.py:561
+#: part/views.py:570
msgid "Part QR Code"
msgstr ""
-#: part/views.py:663
+#: part/views.py:672
msgid "Select Part Image"
msgstr ""
-#: part/views.py:689
+#: part/views.py:698
msgid "Updated part image"
msgstr ""
-#: part/views.py:692
+#: part/views.py:701
msgid "Part image not found"
msgstr ""
-#: part/views.py:766
+#: part/views.py:775
msgid "Match Parts"
msgstr ""
-#: part/views.py:1101
+#: part/views.py:1110
msgid "Export Bill of Materials"
msgstr ""
-#: part/views.py:1150
+#: part/views.py:1159
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1157
+#: part/views.py:1166
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1166
+#: part/views.py:1175
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1315
+#: part/views.py:1324
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1325
+#: part/views.py:1334
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1332
+#: part/views.py:1341
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1391 templates/js/translated/part.js:315
+#: part/views.py:1400 templates/js/translated/part.js:315
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1429
+#: part/views.py:1438
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1435
+#: part/views.py:1444
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1444
+#: part/views.py:1453
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1545
+#: part/views.py:1554
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1601
+#: part/views.py:1610
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1623
+#: part/views.py:1632
msgid "Added new price break"
msgstr ""
-#: part/views.py:1699
+#: part/views.py:1708
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1707
+#: part/views.py:1716
msgid "Delete Internal Price Break"
msgstr ""
-#: plugin/integration.py:124
+#: plugin/integration.py:138
msgid "No author found"
msgstr ""
-#: plugin/integration.py:136
+#: plugin/integration.py:152
msgid "No date found"
msgstr ""
@@ -5191,7 +5287,7 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:195
+#: plugin/models.py:199
msgid "Plugin"
msgstr ""
@@ -5357,12 +5453,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:517 stock/templates/stock/item_base.html:156
+#: stock/models.py:519 stock/templates/stock/item_base.html:156
#: templates/js/translated/build.js:293 templates/js/translated/build.js:697
#: templates/js/translated/build.js:1073
#: templates/js/translated/model_renderers.js:95
#: templates/js/translated/order.js:99 templates/js/translated/order.js:1945
-#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:415
+#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:423
msgid "Serial Number"
msgstr ""
@@ -5371,19 +5467,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:1948
+#: stock/models.py:1976
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:1954
+#: stock/models.py:1982
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:49
+#: templates/InvenTree/settings/plugin.html:50
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2367
+#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2525
msgid "Date"
msgstr ""
@@ -5396,23 +5492,27 @@ msgid "Fail"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:123
-#: stock/templates/stock/stock_sidebar.html:12
+#: stock/templates/stock/stock_sidebar.html:16
msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:578 templates/js/translated/stock.js:748
-#: templates/js/translated/stock.js:2627
+#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756
+#: templates/js/translated/stock.js:2785
msgid "Serial"
msgstr ""
-#: stock/api.py:478
+#: stock/api.py:476
msgid "Quantity is required"
msgstr ""
-#: stock/forms.py:77 stock/forms.py:251 stock/models.py:574
+#: stock/api.py:483
+msgid "Valid part must be supplied"
+msgstr ""
+
+#: stock/forms.py:77 stock/forms.py:251 stock/models.py:576
#: stock/templates/stock/item_base.html:193
-#: templates/js/translated/stock.js:1701
+#: templates/js/translated/stock.js:1709
msgid "Expiry Date"
msgstr ""
@@ -5460,228 +5560,228 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:60 stock/models.py:611
+#: stock/models.py:62 stock/models.py:613
#: stock/templates/stock/item_base.html:416
msgid "Owner"
msgstr ""
-#: stock/models.py:61 stock/models.py:612
+#: stock/models.py:63 stock/models.py:614
msgid "Select Owner"
msgstr ""
-#: stock/models.py:336
+#: stock/models.py:338
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:372
+#: stock/models.py:374
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:382 stock/models.py:391
+#: stock/models.py:384 stock/models.py:393
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:383
+#: stock/models.py:385
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:405
+#: stock/models.py:407
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:413
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:418
+#: stock/models.py:420
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:461
+#: stock/models.py:463
msgid "Parent Stock Item"
msgstr "Artículo de stock principal"
-#: stock/models.py:470
+#: stock/models.py:472
msgid "Base part"
msgstr ""
-#: stock/models.py:478
+#: stock/models.py:480
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:484 stock/templates/stock/location.html:16
+#: stock/models.py:486 stock/templates/stock/location.html:16
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:487
+#: stock/models.py:489
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:494
+#: stock/models.py:496
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:500 stock/templates/stock/item_base.html:298
+#: stock/models.py:502 stock/templates/stock/item_base.html:298
msgid "Installed In"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:505
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:521
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:535
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:537
+#: stock/models.py:539
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:546
+#: stock/models.py:548
msgid "Source Build"
msgstr ""
-#: stock/models.py:548
+#: stock/models.py:550
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:559
+#: stock/models.py:561
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:562
+#: stock/models.py:564
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:568
+#: stock/models.py:570
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:575
+#: stock/models.py:577
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:588
+#: stock/models.py:590
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:588
+#: stock/models.py:590
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:598 stock/templates/stock/item.html:111
+#: stock/models.py:600 stock/templates/stock/item.html:128
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:607
+#: stock/models.py:609
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1068
+#: stock/models.py:1096
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1074
+#: stock/models.py:1102
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1080
+#: stock/models.py:1108
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1083
+#: stock/models.py:1111
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1086
+#: stock/models.py:1114
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1093
+#: stock/models.py:1121
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1164
+#: stock/models.py:1192
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1167
+#: stock/models.py:1195
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1170
+#: stock/models.py:1198
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1173
+#: stock/models.py:1201
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1176
+#: stock/models.py:1204
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1179
+#: stock/models.py:1207
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1186 stock/serializers.py:774
+#: stock/models.py:1214 stock/serializers.py:775
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1190
+#: stock/models.py:1218
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1194
+#: stock/models.py:1222
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1198
+#: stock/models.py:1226
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1369
+#: stock/models.py:1397
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1868
+#: stock/models.py:1896
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1925
+#: stock/models.py:1953
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1931
+#: stock/models.py:1959
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1949
+#: stock/models.py:1977
msgid "Test name"
msgstr ""
-#: stock/models.py:1955 templates/js/translated/table_filters.js:271
+#: stock/models.py:1983 templates/js/translated/table_filters.js:271
msgid "Test result"
msgstr ""
-#: stock/models.py:1961
+#: stock/models.py:1989
msgid "Test output value"
msgstr ""
-#: stock/models.py:1968
+#: stock/models.py:1996
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1974
+#: stock/models.py:2002
msgid "Test notes"
msgstr ""
@@ -5706,7 +5806,7 @@ msgstr ""
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:326 stock/serializers.py:731 stock/serializers.py:972
+#: stock/serializers.py:326 stock/serializers.py:732 stock/serializers.py:973
msgid "Destination stock location"
msgstr ""
@@ -5718,63 +5818,63 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:588
+#: stock/serializers.py:589
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:592
+#: stock/serializers.py:593
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:597
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:626
+#: stock/serializers.py:627
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:632
+#: stock/serializers.py:633
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:640
+#: stock/serializers.py:641
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:650 stock/serializers.py:880
+#: stock/serializers.py:651 stock/serializers.py:881
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:738
+#: stock/serializers.py:739
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:743
+#: stock/serializers.py:744
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:744
+#: stock/serializers.py:745
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:749
+#: stock/serializers.py:750
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:750
+#: stock/serializers.py:751
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:760
+#: stock/serializers.py:761
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:842
+#: stock/serializers.py:843
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:870
+#: stock/serializers.py:871
msgid "Stock transaction notes"
msgstr ""
@@ -5787,47 +5887,51 @@ msgid "New Entry"
msgstr ""
#: stock/templates/stock/item.html:48
-msgid "Child Stock Items"
-msgstr ""
-
-#: stock/templates/stock/item.html:55
-msgid "This stock item does not have any child items"
+msgid "Stock Item Allocations"
msgstr ""
#: stock/templates/stock/item.html:64
-#: stock/templates/stock/stock_sidebar.html:8
-msgid "Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:57
-msgid "Test Report"
+msgid "Child Stock Items"
msgstr ""
#: stock/templates/stock/item.html:72
+msgid "This stock item does not have any child items"
+msgstr ""
+
+#: stock/templates/stock/item.html:81
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:57
+msgid "Test Report"
+msgstr ""
+
+#: stock/templates/stock/item.html:89
msgid "Delete Test Data"
msgstr ""
-#: stock/templates/stock/item.html:76
+#: stock/templates/stock/item.html:93
msgid "Add Test Data"
msgstr ""
-#: stock/templates/stock/item.html:133
+#: stock/templates/stock/item.html:150
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:137 stock/views.py:482
+#: stock/templates/stock/item.html:154 stock/views.py:482
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304
+#: stock/templates/stock/item.html:309 stock/templates/stock/item.html:334
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:324
+#: stock/templates/stock/item.html:354
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:338
+#: stock/templates/stock/item.html:368
msgid "Delete Test Result"
msgstr ""
@@ -5952,7 +6056,7 @@ msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:206
-#: templates/js/translated/stock.js:1714
+#: templates/js/translated/stock.js:1722
msgid "Last Updated"
msgstr ""
@@ -6111,7 +6215,7 @@ msgid "Sublocations"
msgstr ""
#: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164
-#: templates/stats.html:97 users/models.py:42
+#: templates/stats.html:109 users/models.py:42
msgid "Stock Locations"
msgstr ""
@@ -6135,7 +6239,7 @@ msgstr ""
msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/stock_sidebar.html:16
+#: stock/templates/stock/stock_sidebar.html:20
msgid "Child Items"
msgstr ""
@@ -6164,7 +6268,7 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:162
+#: stock/views.py:162 templates/js/translated/stock.js:139
msgid "Edit Stock Location"
msgstr ""
@@ -6204,7 +6308,7 @@ msgstr ""
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:727 templates/js/translated/stock.js:1066
+#: stock/views.py:727 templates/js/translated/stock.js:1074
msgid "Confirm stock adjustment"
msgstr ""
@@ -6212,7 +6316,7 @@ msgstr ""
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:324
+#: stock/views.py:760 templates/js/translated/stock.js:332
msgid "Edit Stock Item"
msgstr ""
@@ -6224,7 +6328,7 @@ msgstr ""
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1153 templates/js/translated/stock.js:304
+#: stock/views.py:1153 templates/js/translated/stock.js:312
msgid "Duplicate Stock Item"
msgstr ""
@@ -6268,6 +6372,18 @@ msgstr ""
msgid "The requested page does not exist"
msgstr ""
+#: templates/500.html:5 templates/500.html:11
+msgid "Internal Server Error"
+msgstr ""
+
+#: templates/500.html:14
+msgid "The InvenTree server raised an internal error"
+msgstr ""
+
+#: templates/500.html:15
+msgid "Refer to the error log in the admin interface for further details"
+msgstr ""
+
#: templates/503.html:10 templates/503.html:35
msgid "Site is in Maintenance"
msgstr ""
@@ -6390,7 +6506,7 @@ msgid "Signup"
msgstr ""
#: templates/InvenTree/settings/mixins/settings.html:5
-#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:118
+#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113
msgid "Settings"
msgstr ""
@@ -6431,43 +6547,43 @@ msgstr ""
msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage."
msgstr ""
-#: templates/InvenTree/settings/plugin.html:32
+#: templates/InvenTree/settings/plugin.html:33
msgid "Plugins"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:37
+#: templates/InvenTree/settings/plugin.html:38
#: templates/js/translated/plugin.js:15
msgid "Install Plugin"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:46 templates/navbar.html:111
+#: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111
#: users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin.html:49
#: templates/InvenTree/settings/plugin_settings.html:28
msgid "Author"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:50
+#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin_settings.html:43
msgid "Version"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:91
+#: templates/InvenTree/settings/plugin.html:92
msgid "Inactive plugins"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:114
+#: templates/InvenTree/settings/plugin.html:115
msgid "Plugin Error Stack"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:123
+#: templates/InvenTree/settings/plugin.html:124
msgid "Stage"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:125
+#: templates/InvenTree/settings/plugin.html:126
msgid "Message"
msgstr ""
@@ -6555,37 +6671,37 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:75
+#: templates/InvenTree/settings/settings.html:78
msgid "Edit Plugin Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:77
+#: templates/InvenTree/settings/settings.html:80
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:79
+#: templates/InvenTree/settings/settings.html:82
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:168
+#: templates/InvenTree/settings/settings.html:171
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:190
-#: templates/InvenTree/settings/settings.html:289
+#: templates/InvenTree/settings/settings.html:193
+#: templates/InvenTree/settings/settings.html:292
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:191
-#: templates/InvenTree/settings/settings.html:290
+#: templates/InvenTree/settings/settings.html:194
+#: templates/InvenTree/settings/settings.html:293
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:269
+#: templates/InvenTree/settings/settings.html:272
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:273
+#: templates/InvenTree/settings/settings.html:276
msgid "ID"
msgstr ""
@@ -6763,124 +6879,105 @@ msgstr ""
msgid "Remove multifactor"
msgstr ""
-#: templates/InvenTree/settings/user.html:219
+#: templates/InvenTree/settings/user.html:220
+msgid "Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:226
+msgid "Log out active sessions (except this one)"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:227
+msgid "Log Out Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:236
+msgid "unknown on unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:237
+msgid "unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:241
+msgid "IP Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:242
+msgid "Device"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:243
+msgid "Last Activity"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:252
+#, python-format
+msgid "%(time)s ago (this session)"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:254
+#, python-format
+msgid "%(time)s ago"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:266
+msgid "Do you really want to remove the selected email address?"
+msgstr ""
+
#: templates/InvenTree/settings/user_display.html:25
msgid "Theme Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:227
#: templates/InvenTree/settings/user_display.html:35
msgid "Select theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:237
#: templates/InvenTree/settings/user_display.html:46
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:246
#: templates/InvenTree/settings/user_display.html:54
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:254
#: templates/InvenTree/settings/user_display.html:63
msgid "Select language"
msgstr ""
-#: templates/InvenTree/settings/user.html:270
#: templates/InvenTree/settings/user_display.html:79
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:272
#: templates/InvenTree/settings/user_display.html:81
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:279
#: templates/InvenTree/settings/user_display.html:88
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:281
#: templates/InvenTree/settings/user_display.html:91
msgid "Some languages are not complete"
msgstr ""
-#: templates/InvenTree/settings/user.html:283
#: templates/InvenTree/settings/user_display.html:93
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user.html:285
+#: templates/InvenTree/settings/user_display.html:95
+msgid "and hidden."
+msgstr ""
+
#: templates/InvenTree/settings/user_display.html:95
msgid "Show them too"
msgstr ""
-#: templates/InvenTree/settings/user.html:292
#: templates/InvenTree/settings/user_display.html:101
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user.html:293
-#, python-format
-msgid "Native language translation of the\n"
-" InvenTree web application is community contributed via crowdin. Contributions are\n"
-" welcomed and encouraged."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:302
-msgid "Active Sessions"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:308
-msgid "Log out active sessions (except this one)"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:309
-msgid "Log Out Active Sessions"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:318
-msgid "unknown on unknown"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:319
-msgid "unknown"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:323
-msgid "IP Address"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:324
-msgid "Device"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:325
-msgid "Last Activity"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:334
-#, python-format
-msgid "%(time)s ago (this session)"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:336
-#, python-format
-msgid "%(time)s ago"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:348
-msgid "Do you really want to remove the selected email address?"
-msgstr ""
-
-#: templates/InvenTree/settings/user_display.html:95
-msgid "and hidden."
-msgstr ""
-
#: templates/InvenTree/settings/user_display.html:102
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
@@ -6899,9 +6996,9 @@ msgid "InvenTree Version Information"
msgstr ""
#: templates/about.html:11 templates/about.html:105
-#: templates/js/translated/bom.js:395 templates/js/translated/modals.js:53
-#: templates/js/translated/modals.js:573 templates/js/translated/modals.js:667
-#: templates/js/translated/modals.js:970 templates/modals.html:15
+#: templates/js/translated/bom.js:407 templates/js/translated/modals.js:53
+#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
+#: templates/js/translated/modals.js:983 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -7178,13 +7275,13 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1103
+#: templates/js/translated/bom.js:1117
msgid "Required Quantity"
msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:579 templates/js/translated/build.js:1189
+#: templates/js/translated/bom.js:591 templates/js/translated/build.js:1189
#: templates/js/translated/build.js:1810
#: templates/js/translated/table_filters.js:178
msgid "Available"
@@ -7208,10 +7305,6 @@ msgstr ""
msgid "Click on the following link to view this part"
msgstr ""
-#: templates/email/low_stock_notification.html:17
-msgid "Total Stock"
-msgstr ""
-
#: templates/email/low_stock_notification.html:19
msgid "Minimum Quantity"
msgstr ""
@@ -7232,11 +7325,11 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1040
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1053
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1041
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1054
msgid "No response from the InvenTree server"
msgstr ""
@@ -7248,27 +7341,27 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1063
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1051
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1064
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1068
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1056
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1069
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1073
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1061
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1074
msgid "The requested resource could not be located on the server"
msgstr ""
@@ -7280,11 +7373,11 @@ msgstr ""
msgid "HTTP method not allowed at URL"
msgstr ""
-#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1065
+#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1078
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1079
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -7353,7 +7446,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:140
-#: templates/js/translated/modals.js:1030
+#: templates/js/translated/modals.js:1043
msgid "Invalid server response"
msgstr ""
@@ -7381,7 +7474,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1018
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026
msgid "Remove stock item"
msgstr ""
@@ -7428,12 +7521,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73
-#: templates/js/translated/order.js:369 templates/js/translated/stock.js:510
+#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74
-#: templates/js/translated/order.js:370 templates/js/translated/stock.js:511
+#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519
msgid "Select file format"
msgstr ""
@@ -7489,87 +7582,87 @@ msgstr ""
msgid "Remove substitute part"
msgstr ""
-#: templates/js/translated/bom.js:340
-msgid "Select and add a new variant item using the input below"
+#: templates/js/translated/bom.js:352
+msgid "Select and add a new substitute part using the input below"
msgstr ""
-#: templates/js/translated/bom.js:351
+#: templates/js/translated/bom.js:363
msgid "Are you sure you wish to remove this substitute part link?"
msgstr ""
-#: templates/js/translated/bom.js:357
+#: templates/js/translated/bom.js:369
msgid "Remove Substitute Part"
msgstr ""
-#: templates/js/translated/bom.js:396
+#: templates/js/translated/bom.js:408
msgid "Add Substitute"
msgstr ""
-#: templates/js/translated/bom.js:397
+#: templates/js/translated/bom.js:409
msgid "Edit BOM Item Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:516
+#: templates/js/translated/bom.js:528
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:520 templates/js/translated/build.js:1171
+#: templates/js/translated/bom.js:532 templates/js/translated/build.js:1171
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:525
+#: templates/js/translated/bom.js:537
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:597
+#: templates/js/translated/bom.js:609
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:612
+#: templates/js/translated/bom.js:624
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:619
+#: templates/js/translated/bom.js:631
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:668 templates/js/translated/bom.js:757
+#: templates/js/translated/bom.js:680 templates/js/translated/bom.js:769
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:728
+#: templates/js/translated/bom.js:740
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:730
+#: templates/js/translated/bom.js:742
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:732
+#: templates/js/translated/bom.js:744
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:734 templates/js/translated/bom.js:908
+#: templates/js/translated/bom.js:746 templates/js/translated/bom.js:920
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:736 templates/js/translated/bom.js:891
+#: templates/js/translated/bom.js:748 templates/js/translated/bom.js:903
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:830 templates/js/translated/build.js:915
+#: templates/js/translated/bom.js:842 templates/js/translated/build.js:915
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:886
+#: templates/js/translated/bom.js:898
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:1086 templates/js/translated/build.js:1155
+#: templates/js/translated/bom.js:1100 templates/js/translated/build.js:1155
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1108
+#: templates/js/translated/bom.js:1122
msgid "Inherited from parent BOM"
msgstr "Heredado de BOM principal"
@@ -7725,9 +7818,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1206
-#: templates/js/translated/part.js:1617 templates/js/translated/stock.js:1512
-#: templates/js/translated/stock.js:2321
+#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1213
+#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1520
+#: templates/js/translated/stock.js:2479
msgid "Select"
msgstr ""
@@ -7735,7 +7828,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2540
+#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2698
msgid "No user information"
msgstr ""
@@ -7808,34 +7901,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:511
-#: templates/js/translated/part.js:596
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:517
+#: templates/js/translated/part.js:602
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:515
-#: templates/js/translated/part.js:600
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:521
+#: templates/js/translated/part.js:606
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:690
+#: templates/js/translated/company.js:631 templates/js/translated/part.js:696
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:732
+#: templates/js/translated/company.js:668 templates/js/translated/part.js:738
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:733
+#: templates/js/translated/company.js:669 templates/js/translated/part.js:739
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:750
+#: templates/js/translated/company.js:688 templates/js/translated/part.js:756
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:762
+#: templates/js/translated/company.js:699 templates/js/translated/part.js:768
msgid "Delete Parameter"
msgstr ""
@@ -7844,12 +7937,12 @@ msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:420
+#: templates/js/translated/filters.js:429
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:421
+#: templates/js/translated/filters.js:430
msgid "false"
msgstr ""
@@ -7869,7 +7962,7 @@ msgstr ""
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:329
+#: templates/js/translated/filters.js:338
msgid "Create filter"
msgstr ""
@@ -7898,20 +7991,20 @@ msgstr ""
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1080 templates/modals.html:19
+#: templates/js/translated/forms.js:1082 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1471
+#: templates/js/translated/forms.js:1487
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1675
+#: templates/js/translated/forms.js:1691
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1895
+#: templates/js/translated/forms.js:1930
msgid "Clear input"
msgstr ""
@@ -7924,7 +8017,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1042
+#: templates/js/translated/stock.js:1050
msgid "Select Stock Items"
msgstr ""
@@ -7974,12 +8067,12 @@ msgid "Select Label Template"
msgstr ""
#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
-#: templates/js/translated/modals.js:599
+#: templates/js/translated/modals.js:610
msgid "Cancel"
msgstr ""
#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:666 templates/js/translated/modals.js:969
+#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:982
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
@@ -7988,47 +8081,47 @@ msgstr ""
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:381
+#: templates/js/translated/modals.js:392
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:540
+#: templates/js/translated/modals.js:551
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:598
+#: templates/js/translated/modals.js:609
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:655
+#: templates/js/translated/modals.js:666
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:921
+#: templates/js/translated/modals.js:934
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:921
+#: templates/js/translated/modals.js:934
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:946
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1030
+#: templates/js/translated/modals.js:1043
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1045
+#: templates/js/translated/modals.js:1058
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1046
+#: templates/js/translated/modals.js:1059
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1069
+#: templates/js/translated/modals.js:1082
msgid "Error requesting form data"
msgstr ""
@@ -8052,23 +8145,24 @@ msgstr ""
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:236
+#: templates/js/translated/model_renderers.js:249
+#: templates/js/translated/model_renderers.js:270
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:253
+#: templates/js/translated/model_renderers.js:287
msgid "Shipment ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:273
+#: templates/js/translated/model_renderers.js:307
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:310
+#: templates/js/translated/model_renderers.js:344
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:339
+#: templates/js/translated/model_renderers.js:373
msgid "Supplier Part ID"
msgstr ""
@@ -8116,7 +8210,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2123
+#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2131
msgid "Stock Status"
msgstr ""
@@ -8140,7 +8234,7 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:790 templates/js/translated/part.js:803
+#: templates/js/translated/order.js:790 templates/js/translated/part.js:809
msgid "No purchase orders found"
msgstr ""
@@ -8165,7 +8259,7 @@ msgid "Total"
msgstr ""
#: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163
-#: templates/js/translated/part.js:1834 templates/js/translated/part.js:2045
+#: templates/js/translated/part.js:1841 templates/js/translated/part.js:2052
msgid "Unit Price"
msgstr ""
@@ -8181,7 +8275,7 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1166 templates/js/translated/part.js:935
+#: templates/js/translated/order.js:1166 templates/js/translated/part.js:942
msgid "Receive line item"
msgstr ""
@@ -8250,7 +8344,7 @@ msgid "Delete Stock Allocation"
msgstr ""
#: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048
-#: templates/js/translated/stock.js:1428
+#: templates/js/translated/stock.js:1436
msgid "Shipped to customer"
msgstr ""
@@ -8378,144 +8472,148 @@ msgstr ""
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:412
+#: templates/js/translated/part.js:351
+msgid "Create Part Variant"
+msgstr ""
+
+#: templates/js/translated/part.js:418
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:414
+#: templates/js/translated/part.js:420
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:419
+#: templates/js/translated/part.js:425
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:421
+#: templates/js/translated/part.js:427
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:438
+#: templates/js/translated/part.js:444
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:448
+#: templates/js/translated/part.js:454
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:451
+#: templates/js/translated/part.js:457
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:475
+#: templates/js/translated/part.js:481
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:503 templates/js/translated/part.js:588
+#: templates/js/translated/part.js:509 templates/js/translated/part.js:594
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:507 templates/js/translated/part.js:592
+#: templates/js/translated/part.js:513 templates/js/translated/part.js:598
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:519
+#: templates/js/translated/part.js:525
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:529
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:638
+#: templates/js/translated/part.js:644
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1005
+#: templates/js/translated/part.js:1012
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1029
+#: templates/js/translated/part.js:1036
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1096 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:1363
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1266
+#: templates/js/translated/part.js:1273
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1289
+#: templates/js/translated/part.js:1296
#: templates/js/translated/table_filters.js:430
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1380 templates/js/translated/part.js:1552
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559
+#: templates/js/translated/stock.js:2440
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1396
+#: templates/js/translated/part.js:1403
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1571 templates/js/translated/stock.js:2301
+#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2459
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1635
+#: templates/js/translated/part.js:1642
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1649 templates/js/translated/stock.js:2345
+#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2503
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1693
+#: templates/js/translated/part.js:1700
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1744 templates/js/translated/stock.js:1234
+#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1242
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1745 templates/js/translated/stock.js:1235
+#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1243
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1751
+#: templates/js/translated/part.js:1758
msgid "This test is defined for a parent part"
msgstr "Esta prueba está definida para una parte principal"
-#: templates/js/translated/part.js:1773
+#: templates/js/translated/part.js:1780
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1787
+#: templates/js/translated/part.js:1794
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1812
+#: templates/js/translated/part.js:1819
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1867
+#: templates/js/translated/part.js:1874
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1868
+#: templates/js/translated/part.js:1875
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1969
+#: templates/js/translated/part.js:1976
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1988
+#: templates/js/translated/part.js:1995
msgid "Single Price Difference"
msgstr ""
@@ -8589,340 +8687,344 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:73
+#: templates/js/translated/stock.js:74
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:173
+#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:181
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/stock.js:93 templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:94 templates/js/translated/stock.js:183
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/stock.js:101
+#: templates/js/translated/stock.js:102
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:110
+#: templates/js/translated/stock.js:111
msgid "Parent stock location"
msgstr "Ubicación del stock principal"
-#: templates/js/translated/stock.js:146
+#: templates/js/translated/stock.js:154
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:186
+#: templates/js/translated/stock.js:194
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:225
+#: templates/js/translated/stock.js:233
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:231
+#: templates/js/translated/stock.js:239
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:374
+#: templates/js/translated/stock.js:382
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:387
+#: templates/js/translated/stock.js:395
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:412
+#: templates/js/translated/stock.js:420
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:416 templates/js/translated/stock.js:417
+#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:433
+#: templates/js/translated/stock.js:441
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:453
+#: templates/js/translated/stock.js:461
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:462
+#: templates/js/translated/stock.js:470
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:507
+#: templates/js/translated/stock.js:515
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:518
+#: templates/js/translated/stock.js:526
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:527
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:628
+#: templates/js/translated/stock.js:636
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:629
+#: templates/js/translated/stock.js:637
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:706
+#: templates/js/translated/stock.js:714
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:707
+#: templates/js/translated/stock.js:715
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:709
+#: templates/js/translated/stock.js:717
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:710
+#: templates/js/translated/stock.js:718
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:796
+#: templates/js/translated/stock.js:804
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:797
+#: templates/js/translated/stock.js:805
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:892
+#: templates/js/translated/stock.js:900
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:893
+#: templates/js/translated/stock.js:901
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:899
+#: templates/js/translated/stock.js:907
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:900
+#: templates/js/translated/stock.js:908
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:904
+#: templates/js/translated/stock.js:912
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:905
+#: templates/js/translated/stock.js:913
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:909
+#: templates/js/translated/stock.js:917
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:910 users/models.py:206
+#: templates/js/translated/stock.js:918 users/models.py:208
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:914 templates/stock_table.html:58
+#: templates/js/translated/stock.js:922 templates/stock_table.html:58
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1003
+#: templates/js/translated/stock.js:1011
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1003
+#: templates/js/translated/stock.js:1011
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1043
+#: templates/js/translated/stock.js:1051
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1201
+#: templates/js/translated/stock.js:1209
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1211
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1208
+#: templates/js/translated/stock.js:1216
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1230
+#: templates/js/translated/stock.js:1238
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1256
+#: templates/js/translated/stock.js:1264
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1313
+#: templates/js/translated/stock.js:1321
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1420
+#: templates/js/translated/stock.js:1428
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1424
+#: templates/js/translated/stock.js:1432
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1432
+#: templates/js/translated/stock.js:1440
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1438
+#: templates/js/translated/stock.js:1446
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1596
+#: templates/js/translated/stock.js:1604
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1601
+#: templates/js/translated/stock.js:1609
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1612
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/stock.js:1616
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1610
+#: templates/js/translated/stock.js:1618
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1616
+#: templates/js/translated/stock.js:1624
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1626
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1620
+#: templates/js/translated/stock.js:1628
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1625
+#: templates/js/translated/stock.js:1633
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1632
+#: templates/js/translated/stock.js:1640
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1634
+#: templates/js/translated/stock.js:1642
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1644
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1640
+#: templates/js/translated/stock.js:1648
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1698
msgid "Stocktake"
msgstr "Inventario"
-#: templates/js/translated/stock.js:1763
+#: templates/js/translated/stock.js:1771
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1801
+#: templates/js/translated/stock.js:1809
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1822 templates/js/translated/stock.js:1870
+#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:1878
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1910
+#: templates/js/translated/stock.js:1918
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1937
+#: templates/js/translated/stock.js:1945
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1939
+#: templates/js/translated/stock.js:1947
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:2138
+#: templates/js/translated/stock.js:2146
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2152
+#: templates/js/translated/stock.js:2160
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2153
+#: templates/js/translated/stock.js:2161
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2377
+#: templates/js/translated/stock.js:2340
+msgid "Allocated Quantity"
+msgstr ""
+
+#: templates/js/translated/stock.js:2535
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:2399
+#: templates/js/translated/stock.js:2557
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2424
+#: templates/js/translated/stock.js:2582
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2443
+#: templates/js/translated/stock.js:2601
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2462
+#: templates/js/translated/stock.js:2620
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2480
+#: templates/js/translated/stock.js:2638
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2503
+#: templates/js/translated/stock.js:2661
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2511
+#: templates/js/translated/stock.js:2669
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2552
+#: templates/js/translated/stock.js:2710
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2553
+#: templates/js/translated/stock.js:2711
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2604
+#: templates/js/translated/stock.js:2762
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2655
+#: templates/js/translated/stock.js:2813
msgid "Uninstall Stock Item"
msgstr ""
@@ -9194,11 +9296,11 @@ msgstr ""
msgid "Sell"
msgstr ""
-#: templates/navbar.html:113
+#: templates/navbar.html:114
msgid "Logout"
msgstr ""
-#: templates/navbar.html:115
+#: templates/navbar.html:116
msgid "Login"
msgstr ""
@@ -9246,31 +9348,43 @@ msgstr ""
msgid "Server is deployed using docker"
msgstr ""
-#: templates/stats.html:40
-msgid "Server status"
+#: templates/stats.html:39
+msgid "Plugin Support"
msgstr ""
#: templates/stats.html:43
-msgid "Healthy"
+msgid "Plugin support enabled"
msgstr ""
#: templates/stats.html:45
-msgid "Issues detected"
+msgid "Plugin support disabled"
msgstr ""
#: templates/stats.html:52
-msgid "Background Worker"
+msgid "Server status"
msgstr ""
#: templates/stats.html:55
+msgid "Healthy"
+msgstr ""
+
+#: templates/stats.html:57
+msgid "Issues detected"
+msgstr ""
+
+#: templates/stats.html:64
+msgid "Background Worker"
+msgstr ""
+
+#: templates/stats.html:67
msgid "Background worker not running"
msgstr ""
-#: templates/stats.html:63
+#: templates/stats.html:75
msgid "Email Settings"
msgstr ""
-#: templates/stats.html:66
+#: templates/stats.html:78
msgid "Email settings not configured"
msgstr ""
@@ -9366,35 +9480,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:193
+#: users/models.py:195
msgid "Permission set"
msgstr ""
-#: users/models.py:201
+#: users/models.py:203
msgid "Group"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
msgid "View"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
msgid "Permission to view items"
msgstr "Permiso para ver artículos"
-#: users/models.py:206
+#: users/models.py:208
msgid "Permission to add items"
msgstr "Permiso para añadir artículos"
-#: users/models.py:208
+#: users/models.py:210
msgid "Change"
msgstr ""
-#: users/models.py:208
+#: users/models.py:210
msgid "Permissions to edit items"
msgstr "Permisos para editar artículos"
-#: users/models.py:210
+#: users/models.py:212
msgid "Permission to delete items"
msgstr "Permiso para eliminar artículos"
diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po
index f4ab7586e2..85b16f7fea 100644
--- a/InvenTree/locale/fr/LC_MESSAGES/django.po
+++ b/InvenTree/locale/fr/LC_MESSAGES/django.po
@@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-01-10 03:54+0000\n"
-"PO-Revision-Date: 2022-01-10 03:57\n"
+"POT-Creation-Date: 2022-01-29 00:17+0000\n"
+"PO-Revision-Date: 2022-01-29 01:10\n"
"Last-Translator: \n"
"Language-Team: French\n"
"Language: fr_FR\n"
@@ -18,15 +18,15 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 138\n"
-#: InvenTree/api.py:64
+#: InvenTree/api.py:55
msgid "API endpoint not found"
msgstr "Point de terminaison de l'API introuvable"
-#: InvenTree/api.py:110
+#: InvenTree/api.py:101
msgid "No action specified"
msgstr "Aucune action spécifiée"
-#: InvenTree/api.py:124
+#: InvenTree/api.py:116
msgid "No matching action found"
msgstr "Aucune action correspondante trouvée"
@@ -80,41 +80,41 @@ msgstr "Confirmation de l'adresse email"
msgid "You must type the same email each time."
msgstr "Vous devez taper le même e-mail à chaque fois."
-#: InvenTree/helpers.py:437
+#: InvenTree/helpers.py:439
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr "Dupliquer le numéro de série: {n}"
-#: InvenTree/helpers.py:444 order/models.py:279 order/models.py:420
+#: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425
#: stock/views.py:1231
msgid "Invalid quantity provided"
msgstr "Quantité fournie invalide"
-#: InvenTree/helpers.py:447
+#: InvenTree/helpers.py:449
msgid "Empty serial number string"
msgstr "Chaîne de numéro de série vide"
-#: InvenTree/helpers.py:469 InvenTree/helpers.py:472 InvenTree/helpers.py:475
-#: InvenTree/helpers.py:500
+#: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477
+#: InvenTree/helpers.py:502
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Groupe invalide : {g}"
-#: InvenTree/helpers.py:510
+#: InvenTree/helpers.py:512
#, python-brace-format
msgid "Invalid group {group}"
-msgstr ""
+msgstr "Groupe invalide {group}"
-#: InvenTree/helpers.py:516
+#: InvenTree/helpers.py:518
#, python-brace-format
msgid "Invalid/no group {group}"
-msgstr ""
+msgstr "Invalide/aucun groupe {group}"
-#: InvenTree/helpers.py:522
+#: InvenTree/helpers.py:524
msgid "No serial numbers found"
msgstr "Aucun numéro de série trouvé"
-#: InvenTree/helpers.py:526
+#: InvenTree/helpers.py:528
#, python-brace-format
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})"
@@ -127,7 +127,7 @@ msgstr "Fichier manquant"
msgid "Missing external link"
msgstr "Lien externe manquant"
-#: InvenTree/models.py:132 stock/models.py:1967
+#: InvenTree/models.py:132 stock/models.py:1995
#: templates/js/translated/attachment.js:119
msgid "Attachment"
msgstr "Pièce jointe"
@@ -137,15 +137,15 @@ msgid "Select file to attach"
msgstr "Sélectionnez un fichier à joindre"
#: InvenTree/models.py:139 company/models.py:131 company/models.py:348
-#: company/models.py:564 order/models.py:124 part/models.py:828
+#: company/models.py:564 order/models.py:127 part/models.py:830
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1317
+#: templates/js/translated/company.js:829 templates/js/translated/part.js:1324
msgid "Link"
msgstr "Lien"
-#: InvenTree/models.py:140 build/models.py:330 part/models.py:829
-#: stock/models.py:527
+#: InvenTree/models.py:140 build/models.py:332 part/models.py:831
+#: stock/models.py:529
msgid "Link to external URL"
msgstr "Lien vers une url externe"
@@ -157,10 +157,11 @@ msgstr "Commentaire"
msgid "File comment"
msgstr "Commentaire du fichier"
-#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213
-#: common/models.py:1214 part/models.py:2258 part/models.py:2278
+#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1223
+#: common/models.py:1224 common/models.py:1452 common/models.py:1453
+#: part/models.py:2265 part/models.py:2285
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2534
+#: templates/js/translated/stock.js:2692
msgid "User"
msgstr "Utilisateur"
@@ -197,42 +198,42 @@ msgstr "Erreur lors du renommage du fichier"
msgid "Invalid choice"
msgstr "Choix invalide"
-#: InvenTree/models.py:277 InvenTree/models.py:278 company/models.py:415
-#: label/models.py:112 part/models.py:772 part/models.py:2442
-#: plugin/models.py:40 report/models.py:181
+#: InvenTree/models.py:277 InvenTree/models.py:278 common/models.py:1438
+#: company/models.py:415 label/models.py:112 part/models.py:774
+#: part/models.py:2449 plugin/models.py:40 report/models.py:181
#: templates/InvenTree/settings/mixins/urls.html:13
-#: templates/InvenTree/settings/plugin.html:47
-#: templates/InvenTree/settings/plugin.html:124
+#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin.html:125
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:279
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:561
-#: templates/js/translated/part.js:700 templates/js/translated/part.js:1624
-#: templates/js/translated/stock.js:2327
+#: templates/InvenTree/settings/settings.html:282
+#: templates/js/translated/company.js:641 templates/js/translated/part.js:567
+#: templates/js/translated/part.js:706 templates/js/translated/part.js:1631
+#: templates/js/translated/stock.js:2485
msgid "Name"
msgstr "Nom"
-#: InvenTree/models.py:284 build/models.py:207
+#: InvenTree/models.py:284 build/models.py:209
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:73 label/models.py:119
-#: order/models.py:122 part/models.py:795 part/templates/part/category.html:74
+#: order/models.py:125 part/models.py:797 part/templates/part/category.html:74
#: part/templates/part/part_base.html:163
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:93
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:327 templates/js/translated/bom.js:540
+#: templates/js/translated/bom.js:339 templates/js/translated/bom.js:552
#: templates/js/translated/build.js:1682 templates/js/translated/company.js:345
#: templates/js/translated/company.js:551
#: templates/js/translated/company.js:840 templates/js/translated/order.js:836
#: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258
-#: templates/js/translated/part.js:620 templates/js/translated/part.js:992
-#: templates/js/translated/part.js:1077 templates/js/translated/part.js:1247
-#: templates/js/translated/part.js:1643 templates/js/translated/part.js:1712
-#: templates/js/translated/stock.js:1569 templates/js/translated/stock.js:2339
-#: templates/js/translated/stock.js:2384
+#: templates/js/translated/part.js:626 templates/js/translated/part.js:999
+#: templates/js/translated/part.js:1084 templates/js/translated/part.js:1254
+#: templates/js/translated/part.js:1650 templates/js/translated/part.js:1719
+#: templates/js/translated/stock.js:1577 templates/js/translated/stock.js:2314
+#: templates/js/translated/stock.js:2497 templates/js/translated/stock.js:2542
msgid "Description"
msgstr "Description"
@@ -244,7 +245,7 @@ msgstr "Description (facultative)"
msgid "parent"
msgstr "parent"
-#: InvenTree/serializers.py:65 part/models.py:2727
+#: InvenTree/serializers.py:65 part/models.py:2734
msgid "Must be a valid number"
msgstr "Doit être un nombre valide"
@@ -252,83 +253,83 @@ msgstr "Doit être un nombre valide"
msgid "Filename"
msgstr "Nom du fichier"
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:661
msgid "German"
msgstr "Allemand"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:662
msgid "Greek"
msgstr "Greek"
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:663
msgid "English"
msgstr "Anglais"
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:664
msgid "Spanish"
msgstr "Spanish"
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:665
msgid "Spanish (Mexican)"
msgstr "Espagnol (Mexique)"
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:666
msgid "French"
msgstr "Français"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:667
msgid "Hebrew"
msgstr "Hebrew"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:668
msgid "Italian"
msgstr "Italian"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:669
msgid "Japanese"
msgstr "Japanese"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:670
msgid "Korean"
msgstr "Korean"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:671
msgid "Dutch"
msgstr "Dutch"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:672
msgid "Norwegian"
msgstr "Norwegian"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:673
msgid "Polish"
msgstr "Polonais"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:674
msgid "Portugese"
msgstr "Portugais"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:675
msgid "Russian"
msgstr "Russian"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:676
msgid "Swedish"
msgstr "Swedish"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:677
msgid "Thai"
msgstr "Thai"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:678
msgid "Turkish"
msgstr "Turc"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:679
msgid "Vietnamese"
msgstr "Vietnamese"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:680
msgid "Chinese"
msgstr "Chinese"
@@ -374,7 +375,7 @@ msgstr "Perdu"
msgid "Returned"
msgstr "Retourné"
-#: InvenTree/status_codes.py:143 order/models.py:941
+#: InvenTree/status_codes.py:143 order/models.py:961
#: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255
msgid "Shipped"
msgstr "Expédié"
@@ -455,9 +456,9 @@ msgstr "Séparer de l'élément parent"
msgid "Split child item"
msgstr "Fractionner l'élément enfant"
-#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2064
+#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2072
msgid "Merged stock items"
-msgstr ""
+msgstr "Articles de stock fusionnés"
#: InvenTree/status_codes.py:296 templates/js/translated/table_filters.js:213
msgid "Sent to customer"
@@ -543,56 +544,56 @@ msgstr "Les mots de passe doivent correspondre"
msgid "System Information"
msgstr "Informations système"
-#: barcodes/api.py:54 barcodes/api.py:151
+#: barcodes/api.py:54 barcodes/api.py:152
msgid "Must provide barcode_data parameter"
msgstr "Le paramètre barcode_data doit être fourni"
-#: barcodes/api.py:127
+#: barcodes/api.py:128
msgid "No match found for barcode data"
msgstr "Aucune correspondance trouvée pour les données du code-barres"
-#: barcodes/api.py:129
+#: barcodes/api.py:130
msgid "Match found for barcode data"
msgstr "Correspondance trouvée pour les données du code-barres"
-#: barcodes/api.py:154
+#: barcodes/api.py:155
msgid "Must provide stockitem parameter"
msgstr "Vous devez fournir le paramètre stockitem"
-#: barcodes/api.py:161
+#: barcodes/api.py:162
msgid "No matching stock item found"
msgstr "Aucun article d'inventaire correspondant trouvé"
-#: barcodes/api.py:191
+#: barcodes/api.py:193
msgid "Barcode already matches Stock Item"
-msgstr ""
+msgstr "Le code-barres correspond déjà à l'objet StockItem"
-#: barcodes/api.py:195
+#: barcodes/api.py:197
msgid "Barcode already matches Stock Location"
-msgstr ""
+msgstr "Le code-barres correspond déjà à l'objet Stock Location"
-#: barcodes/api.py:199
+#: barcodes/api.py:201
msgid "Barcode already matches Part"
-msgstr ""
+msgstr "Le code-barres correspond déjà à l'objet Part"
-#: barcodes/api.py:205 barcodes/api.py:217
+#: barcodes/api.py:207 barcodes/api.py:219
msgid "Barcode hash already matches Stock Item"
-msgstr ""
+msgstr "Le code-barres correspond déjà à l'objet Stock Item"
-#: barcodes/api.py:223
+#: barcodes/api.py:225
msgid "Barcode associated with Stock Item"
-msgstr ""
+msgstr "Code-barres associé à l'article en stock"
-#: build/forms.py:36 build/models.py:1286
+#: build/forms.py:36 build/models.py:1293
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:35 common/models.py:1253
+#: build/templates/build/detail.html:35 common/models.py:1263
#: company/forms.py:42 company/templates/company/supplier_part.html:251
-#: order/models.py:796 order/models.py:1207 order/serializers.py:810
+#: order/models.py:805 order/models.py:1229 order/serializers.py:816
#: order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:145
-#: part/forms.py:161 part/forms.py:177 part/models.py:2629
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144
+#: part/forms.py:160 part/forms.py:176 part/models.py:2636
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:962 part/templates/part/detail.html:1048
+#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -603,7 +604,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:181
#: stock/templates/stock/item_base.html:262
#: stock/templates/stock/item_base.html:270
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:555
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:567
#: templates/js/translated/build.js:295 templates/js/translated/build.js:495
#: templates/js/translated/build.js:689 templates/js/translated/build.js:699
#: templates/js/translated/build.js:1075 templates/js/translated/build.js:1422
@@ -611,11 +612,11 @@ msgstr ""
#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056
#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859
#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036
-#: templates/js/translated/order.js:2150 templates/js/translated/part.js:900
-#: templates/js/translated/part.js:1855 templates/js/translated/part.js:1978
-#: templates/js/translated/part.js:2056 templates/js/translated/stock.js:383
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:750
-#: templates/js/translated/stock.js:2519 templates/js/translated/stock.js:2621
+#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906
+#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985
+#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:391
+#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758
+#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2779
msgid "Quantity"
msgstr "Quantité"
@@ -623,9 +624,9 @@ msgstr "Quantité"
msgid "Enter quantity for build output"
msgstr "Entrer la quantité désiré pour la fabrication"
-#: build/forms.py:41 order/serializers.py:814 stock/forms.py:81
-#: stock/serializers.py:314 templates/js/translated/stock.js:230
-#: templates/js/translated/stock.js:384
+#: build/forms.py:41 order/serializers.py:820 stock/forms.py:81
+#: stock/serializers.py:314 templates/js/translated/stock.js:238
+#: templates/js/translated/stock.js:392
msgid "Serial Numbers"
msgstr "Numéros de série"
@@ -649,18 +650,18 @@ msgstr "Confirmer l'annulation"
msgid "Confirm build cancellation"
msgstr "Confirmer l'annulation de la fabrication"
-#: build/models.py:133
+#: build/models.py:135
msgid "Invalid choice for parent build"
msgstr "Choix invalide pour la fabrication parente"
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:139 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:457
+#: templates/js/translated/build.js:457 templates/js/translated/stock.js:2290
msgid "Build Order"
msgstr "Ordre de Fabrication"
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:140 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:92
#: order/templates/order/so_sidebar.html:13
@@ -670,40 +671,40 @@ msgstr "Ordre de Fabrication"
msgid "Build Orders"
msgstr "Ordres de Fabrication"
-#: build/models.py:198
+#: build/models.py:200
msgid "Build Order Reference"
msgstr "Référence de l' Ordre de Fabrication"
-#: build/models.py:199 order/models.py:210 order/models.py:536
-#: order/models.py:803 part/models.py:2638
+#: build/models.py:201 order/models.py:213 order/models.py:541
+#: order/models.py:812 part/models.py:2645
#: 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/translated/bom.js:547 templates/js/translated/build.js:1179
+#: templates/js/translated/bom.js:559 templates/js/translated/build.js:1179
#: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144
msgid "Reference"
msgstr "Référence"
-#: build/models.py:210
+#: build/models.py:212
msgid "Brief description of the build"
msgstr "Brève description de la fabrication"
-#: build/models.py:219 build/templates/build/build_base.html:164
+#: build/models.py:221 build/templates/build/build_base.html:164
#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr "Fabrication parente"
-#: build/models.py:220
+#: build/models.py:222
msgid "BuildOrder to which this build is allocated"
msgstr "BuildOrder associé a cette fabrication"
-#: build/models.py:225 build/templates/build/build_base.html:77
+#: build/models.py:227 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
-#: order/models.py:856 order/models.py:930
-#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
-#: part/models.py:2204 part/models.py:2220 part/models.py:2239
-#: part/models.py:2256 part/models.py:2358 part/models.py:2480
-#: part/models.py:2613 part/models.py:2920 part/serializers.py:658
+#: order/models.py:876 order/models.py:950
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359
+#: part/models.py:2211 part/models.py:2227 part/models.py:2246
+#: part/models.py:2263 part/models.py:2365 part/models.py:2487
+#: part/models.py:2620 part/models.py:2927 part/serializers.py:658
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -713,205 +714,205 @@ msgstr "BuildOrder associé a cette fabrication"
#: templates/InvenTree/search.html:80
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
-#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:326
-#: templates/js/translated/bom.js:505 templates/js/translated/build.js:680
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:338
+#: templates/js/translated/bom.js:517 templates/js/translated/build.js:680
#: templates/js/translated/build.js:1048 templates/js/translated/build.js:1419
#: templates/js/translated/build.js:1687 templates/js/translated/company.js:492
#: templates/js/translated/company.js:749 templates/js/translated/order.js:84
#: templates/js/translated/order.js:586 templates/js/translated/order.js:1004
#: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933
-#: templates/js/translated/order.js:2128 templates/js/translated/part.js:977
-#: templates/js/translated/part.js:1058 templates/js/translated/part.js:1225
-#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:719
-#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1526
-#: templates/js/translated/stock.js:2609
+#: templates/js/translated/order.js:2128 templates/js/translated/part.js:984
+#: templates/js/translated/part.js:1065 templates/js/translated/part.js:1232
+#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727
+#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1534
+#: templates/js/translated/stock.js:2767
msgid "Part"
msgstr "Pièce"
-#: build/models.py:233
+#: build/models.py:235
msgid "Select part to build"
msgstr "Sélectionnez la pièce à construire"
-#: build/models.py:238
+#: build/models.py:240
msgid "Sales Order Reference"
msgstr "Bon de commande de référence"
-#: build/models.py:242
+#: build/models.py:244
msgid "SalesOrder to which this build is allocated"
-msgstr ""
+msgstr "Commande de vente à laquelle cette construction est allouée"
-#: build/models.py:247 templates/js/translated/build.js:1407
+#: build/models.py:249 templates/js/translated/build.js:1407
#: templates/js/translated/order.js:1564
msgid "Source Location"
msgstr "Emplacement d'origine"
-#: build/models.py:251
+#: build/models.py:253
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
-msgstr ""
+msgstr "Sélectionner l'emplacement à partir duquel le stock doit être pris pour cette construction (laisser vide pour prendre à partir de n'importe quel emplacement de stock)"
-#: build/models.py:256
+#: build/models.py:258
msgid "Destination Location"
msgstr "Emplacement cible"
-#: build/models.py:260
+#: build/models.py:262
msgid "Select location where the completed items will be stored"
msgstr "Sélectionnez l'emplacement où les éléments complétés seront stockés"
-#: build/models.py:264
+#: build/models.py:266
msgid "Build Quantity"
msgstr "Quantité a fabriquer"
-#: build/models.py:267
+#: build/models.py:269
msgid "Number of stock items to build"
-msgstr ""
-
-#: build/models.py:271
-msgid "Completed items"
-msgstr ""
+msgstr "Nombre de stock items à construire"
#: build/models.py:273
+msgid "Completed items"
+msgstr "Articles terminés"
+
+#: build/models.py:275
msgid "Number of stock items which have been completed"
-msgstr ""
+msgstr "Nombre d'articles de stock qui ont été terminés"
-#: build/models.py:277 part/templates/part/part_base.html:234
+#: build/models.py:279 part/templates/part/part_base.html:234
msgid "Build Status"
-msgstr ""
+msgstr "État de la construction"
-#: build/models.py:281
+#: build/models.py:283
msgid "Build status code"
-msgstr ""
+msgstr "Code de statut de construction"
-#: build/models.py:285 stock/models.py:531
+#: build/models.py:287 stock/models.py:533
msgid "Batch Code"
-msgstr ""
+msgstr "Code de lot"
-#: build/models.py:289
+#: build/models.py:291
msgid "Batch code for this build output"
-msgstr ""
+msgstr "Code de lot pour ce build output"
-#: build/models.py:292 order/models.py:126 part/models.py:967
+#: build/models.py:294 order/models.py:129 part/models.py:969
#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271
msgid "Creation Date"
msgstr "Date de création"
-#: build/models.py:296 order/models.py:558
+#: build/models.py:298 order/models.py:563
msgid "Target completion date"
-msgstr ""
+msgstr "Date d'achèvement cible"
-#: build/models.py:297
+#: build/models.py:299
msgid "Target date for build completion. Build will be overdue after this date."
-msgstr ""
+msgstr "Date cible pour l'achèvement de la construction. La construction sera en retard après cette date."
-#: build/models.py:300 order/models.py:252
+#: build/models.py:302 order/models.py:255
#: templates/js/translated/build.js:1758
msgid "Completion Date"
-msgstr ""
+msgstr "Date d'achèvement"
-#: build/models.py:306
+#: build/models.py:308
msgid "completed by"
-msgstr ""
+msgstr "achevé par"
-#: build/models.py:314 templates/js/translated/build.js:1729
+#: build/models.py:316 templates/js/translated/build.js:1729
msgid "Issued by"
-msgstr ""
+msgstr "Émis par"
-#: build/models.py:315
+#: build/models.py:317
msgid "User who issued this build order"
-msgstr ""
+msgstr "Utilisateur ayant émis cette commande de construction"
-#: build/models.py:323 build/templates/build/build_base.html:185
-#: build/templates/build/detail.html:116 order/models.py:140
+#: build/models.py:325 build/templates/build/build_base.html:185
+#: build/templates/build/detail.html:116 order/models.py:143
#: order/templates/order/order_base.html:170
-#: order/templates/order/sales_order_base.html:182 part/models.py:971
+#: order/templates/order/sales_order_base.html:182 part/models.py:973
#: report/templates/report/inventree_build_order_base.html:159
#: templates/js/translated/build.js:1741 templates/js/translated/order.js:864
msgid "Responsible"
-msgstr ""
+msgstr "Responsable"
-#: build/models.py:324
+#: build/models.py:326
msgid "User responsible for this build order"
-msgstr ""
+msgstr "Utilisateur responsable de cette commande de construction"
-#: build/models.py:329 build/templates/build/detail.html:102
+#: build/models.py:331 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:525
+#: part/templates/part/part_base.html:354 stock/models.py:527
#: stock/templates/stock/item_base.html:373
msgid "External Link"
msgstr "Lien Externe"
-#: build/models.py:334 build/serializers.py:201
+#: build/models.py:336 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
-#: order/models.py:144 order/models.py:805 order/models.py:1051
+#: order/models.py:147 order/models.py:814 order/models.py:1071
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:17 part/models.py:956
-#: part/templates/part/detail.html:120 part/templates/part/part_sidebar.html:50
+#: order/templates/order/so_sidebar.html:17 part/models.py:958
+#: part/templates/part/detail.html:137 part/templates/part/part_sidebar.html:54
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:597
-#: stock/models.py:1867 stock/models.py:1973 stock/serializers.py:332
-#: stock/serializers.py:639 stock/serializers.py:737 stock/serializers.py:869
-#: stock/templates/stock/stock_sidebar.html:21
-#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:711
+#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:599
+#: stock/models.py:1895 stock/models.py:2001 stock/serializers.py:332
+#: stock/serializers.py:640 stock/serializers.py:738 stock/serializers.py:870
+#: stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:723
#: templates/js/translated/company.js:845 templates/js/translated/order.js:1149
#: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280
-#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1795
+#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1803
msgid "Notes"
msgstr "Notes"
-#: build/models.py:335
+#: build/models.py:337
msgid "Extra build notes"
-msgstr ""
+msgstr "Notes de construction supplémentaires"
-#: build/models.py:710
+#: build/models.py:717
msgid "No build output specified"
msgstr ""
-#: build/models.py:713
+#: build/models.py:720
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:716
+#: build/models.py:723
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1108
+#: build/models.py:1115
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:1117
+#: build/models.py:1124
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
-msgstr ""
+msgstr "La quantité allouée ({q}) ne doit pas excéder la quantité disponible ({a})"
-#: build/models.py:1127
+#: build/models.py:1134
msgid "Stock item is over-allocated"
-msgstr ""
+msgstr "L'article de stock est suralloué"
-#: build/models.py:1133 order/models.py:1167
+#: build/models.py:1140 order/models.py:1189
msgid "Allocation quantity must be greater than zero"
-msgstr ""
+msgstr "La quantité allouée doit être supérieure à zéro"
-#: build/models.py:1139
+#: build/models.py:1146
msgid "Quantity must be 1 for serialized stock"
-msgstr ""
+msgstr "La quantité doit être de 1 pour stock sérialisé"
-#: build/models.py:1196
+#: build/models.py:1203
msgid "Selected stock item not found in BOM"
-msgstr ""
+msgstr "L'article du stock sélectionné n'a pas été trouvé dans la BOM"
-#: build/models.py:1256 stock/templates/stock/item_base.html:345
+#: build/models.py:1263 stock/templates/stock/item_base.html:345
#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1660
#: templates/navbar.html:35
msgid "Build"
msgstr "Assemblage"
-#: build/models.py:1257
+#: build/models.py:1264
msgid "Build to allocate parts"
-msgstr ""
+msgstr "Construction à laquelle allouer des pièces"
-#: build/models.py:1273 build/serializers.py:388 order/serializers.py:690
-#: order/serializers.py:708 stock/serializers.py:577 stock/serializers.py:695
+#: build/models.py:1280 build/serializers.py:388 order/serializers.py:696
+#: order/serializers.py:714 stock/serializers.py:578 stock/serializers.py:696
#: stock/templates/stock/item_base.html:9
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:367
@@ -920,24 +921,24 @@ msgstr ""
#: templates/js/translated/order.js:85 templates/js/translated/order.js:1577
#: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837
#: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030
-#: templates/js/translated/stock.js:555 templates/js/translated/stock.js:720
-#: templates/js/translated/stock.js:2470
+#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728
+#: templates/js/translated/stock.js:2628
msgid "Stock Item"
msgstr "Article en stock"
-#: build/models.py:1274
+#: build/models.py:1281
msgid "Source stock item"
msgstr ""
-#: build/models.py:1287
+#: build/models.py:1294
msgid "Stock quantity to allocate to build"
-msgstr ""
+msgstr "Quantité de stock à allouer à la construction"
-#: build/models.py:1295
+#: build/models.py:1302
msgid "Install into"
msgstr "Installer dans"
-#: build/models.py:1296
+#: build/models.py:1303
msgid "Destination stock item"
msgstr ""
@@ -962,16 +963,16 @@ msgid "This build output is not fully allocated"
msgstr ""
#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294
-#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:730
-#: stock/serializers.py:971 stock/templates/stock/item_base.html:313
+#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:731
+#: stock/serializers.py:972 stock/templates/stock/item_base.html:313
#: templates/js/translated/barcode.js:384
#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:480
#: templates/js/translated/build.js:1087 templates/js/translated/order.js:508
#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955
#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044
-#: templates/js/translated/part.js:179 templates/js/translated/stock.js:556
-#: templates/js/translated/stock.js:721 templates/js/translated/stock.js:928
-#: templates/js/translated/stock.js:1676 templates/js/translated/stock.js:2411
+#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564
+#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936
+#: templates/js/translated/stock.js:1684 templates/js/translated/stock.js:2569
msgid "Location"
msgstr "Emplacement"
@@ -980,12 +981,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:137
-#: build/templates/build/detail.html:63 order/models.py:552
+#: build/templates/build/detail.html:63 order/models.py:557
#: order/serializers.py:247 stock/templates/stock/item_base.html:187
#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1716
#: templates/js/translated/order.js:591 templates/js/translated/order.js:840
-#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1651
-#: templates/js/translated/stock.js:2488 templates/js/translated/stock.js:2637
+#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:2646 templates/js/translated/stock.js:2795
msgid "Status"
msgstr "État"
@@ -1021,8 +1022,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:313 build/serializers.py:362 part/models.py:2753
-#: part/models.py:2912
+#: build/serializers.py:313 build/serializers.py:362 part/models.py:2760
+#: part/models.py:2919
msgid "BOM Item"
msgstr ""
@@ -1038,16 +1039,16 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:394 stock/serializers.py:584
+#: build/serializers.py:394 stock/serializers.py:585
msgid "Item must be in stock"
msgstr "L'article doit être en stock"
-#: build/serializers.py:408 order/models.py:277 order/serializers.py:240
-#: stock/models.py:365 stock/models.py:1077 stock/serializers.py:305
+#: build/serializers.py:408 order/models.py:280 order/serializers.py:240
+#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr "La quantité doit être supérieure à zéro"
-#: build/serializers.py:450 order/serializers.py:741
+#: build/serializers.py:450 order/serializers.py:747
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Quantité disponible ({q}) dépassée"
@@ -1060,13 +1061,13 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:491 order/serializers.py:984
+#: build/serializers.py:491 order/serializers.py:990
msgid "Allocation items must be provided"
msgstr ""
#: build/tasks.py:92
msgid "Stock required for build order"
-msgstr ""
+msgstr "Stock requis pour la commande de construction"
#: build/templates/build/build_base.html:39
#: order/templates/order/order_base.html:28
@@ -1076,11 +1077,11 @@ msgstr "Actions d'impression"
#: build/templates/build/build_base.html:43
msgid "Print build order report"
-msgstr ""
+msgstr "Imprimer le rapport d'ordre de construction"
#: build/templates/build/build_base.html:50
msgid "Build actions"
-msgstr ""
+msgstr "Modifier construction/ordre de construction"
#: build/templates/build/build_base.html:54
msgid "Edit Build"
@@ -1102,33 +1103,33 @@ msgstr "Compléter l'assemblage"
#: build/templates/build/build_base.html:87
msgid "Build Description"
-msgstr ""
+msgstr "Description de la construction"
#: build/templates/build/build_base.html:96
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
-msgstr ""
+msgstr "Cet ordre de construction est allouée à la commande de vente %(link)s"
#: build/templates/build/build_base.html:103
#, python-format
msgid "This Build Order is a child of Build Order %(link)s"
-msgstr ""
+msgstr "Cet ordre de construction est un enfant de l'ordre de construction %(link)s"
#: build/templates/build/build_base.html:110
msgid "Build Order is ready to mark as completed"
-msgstr ""
+msgstr "L'ordre de construction est prêt à être marqué comme terminé"
#: build/templates/build/build_base.html:115
msgid "Build Order cannot be completed as outstanding outputs remain"
-msgstr ""
+msgstr "L'ordre de construction ne peut pas être achevé car il reste des outputs en suspens"
#: build/templates/build/build_base.html:120
msgid "Required build quantity has not yet been completed"
-msgstr ""
+msgstr "Le nombre de constructions requis n'a pas encore été atteint"
#: build/templates/build/build_base.html:125
msgid "Stock has not been fully allocated to this Build Order"
-msgstr ""
+msgstr "Le stock n'a pas été entièrement alloué à cet ordre de construction"
#: build/templates/build/build_base.html:146
#: build/templates/build/detail.html:132
@@ -1143,7 +1144,7 @@ msgstr "Date Cible"
#: build/templates/build/build_base.html:151
#, python-format
msgid "This build was due on %(target)s"
-msgstr ""
+msgstr "Cette construction était due le %(target)s"
#: build/templates/build/build_base.html:151
#: build/templates/build/build_base.html:196
@@ -1164,13 +1165,13 @@ msgid "Completed"
msgstr "Terminé"
#: build/templates/build/build_base.html:171
-#: build/templates/build/detail.html:95 order/models.py:927
-#: order/models.py:1023 order/templates/order/sales_order_base.html:9
+#: build/templates/build/detail.html:95 order/models.py:947
+#: order/models.py:1043 order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/order.js:1218
+#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2304
msgid "Sales Order"
msgstr "Commandes"
@@ -1178,7 +1179,7 @@ msgstr "Commandes"
#: build/templates/build/detail.html:109
#: report/templates/report/inventree_build_order_base.html:153
msgid "Issued By"
-msgstr ""
+msgstr "Émis par"
#: build/templates/build/build_base.html:223
msgid "Incomplete Outputs"
@@ -1186,7 +1187,7 @@ msgstr ""
#: build/templates/build/build_base.html:224
msgid "Build Order cannot be completed as incomplete build outputs remain"
-msgstr ""
+msgstr "L'ordre de fabrication ne peut pas être achevé car il reste des outputs en suspens"
#: build/templates/build/build_output_create.html:7
msgid "The Bill of Materials contains trackable parts"
@@ -1202,7 +1203,7 @@ msgstr ""
#: build/templates/build/build_output_create.html:15
msgid "Trackable parts can have serial numbers specified"
-msgstr ""
+msgstr "Les pièces traçables peuvent avoir des numéros de série spécifiés"
#: build/templates/build/build_output_create.html:16
msgid "Enter serial numbers to generate multiple single build outputs"
@@ -1210,11 +1211,11 @@ msgstr ""
#: build/templates/build/cancel.html:5
msgid "Are you sure you wish to cancel this build?"
-msgstr ""
+msgstr "Êtes-vous sûr de vouloir annuler cette construction?"
#: build/templates/build/detail.html:16
msgid "Build Details"
-msgstr ""
+msgstr "Détails de la construction"
#: build/templates/build/detail.html:39
msgid "Stock Source"
@@ -1224,7 +1225,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:50 order/models.py:878 stock/forms.py:136
+#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:136
#: templates/js/translated/order.js:592 templates/js/translated/order.js:1138
msgid "Destination"
msgstr "Destination"
@@ -1235,11 +1236,11 @@ msgstr ""
#: build/templates/build/detail.html:74 templates/js/translated/build.js:707
msgid "Allocated Parts"
-msgstr ""
+msgstr "Pièces allouées"
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:331
-#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2644
+#: templates/js/translated/stock.js:1673 templates/js/translated/stock.js:2802
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:238
msgid "Batch"
@@ -1270,19 +1271,19 @@ msgstr ""
#: build/templates/build/detail.html:177 templates/js/translated/build.js:1262
msgid "Unallocate stock"
-msgstr ""
+msgstr "Désallouer le stock"
#: build/templates/build/detail.html:178
msgid "Unallocate Stock"
-msgstr ""
+msgstr "Désallouer le stock"
#: build/templates/build/detail.html:180
msgid "Allocate stock to build"
-msgstr ""
+msgstr "Allouer le stock à une construction"
#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
msgid "Allocate Stock"
-msgstr ""
+msgstr "Allouer le stock"
#: build/templates/build/detail.html:184
msgid "Order required parts"
@@ -1297,19 +1298,19 @@ msgstr "Commander des pièces"
#: build/templates/build/detail.html:197
msgid "Untracked stock has been fully allocated for this Build Order"
-msgstr ""
+msgstr "Le stock non suivi a été entièrement alloué pour cet ordre de construction"
#: build/templates/build/detail.html:201
msgid "Untracked stock has not been fully allocated for this Build Order"
-msgstr ""
+msgstr "Du stock non suivi n'a pas été entièrement alloué pour cet ordre de construction"
#: build/templates/build/detail.html:208
msgid "Allocate selected items"
-msgstr ""
+msgstr "Allouer les éléments sélectionnés"
#: build/templates/build/detail.html:218
msgid "This Build Order does not have any associated untracked BOM items"
-msgstr ""
+msgstr "Cet ordre de construction n'a aucun objet de BOM non suivi associé"
#: build/templates/build/detail.html:227
msgid "Incomplete Build Outputs"
@@ -1343,15 +1344,15 @@ msgstr ""
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:107
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:196
-#: part/templates/part/part_sidebar.html:48 stock/templates/stock/item.html:95
-#: stock/templates/stock/stock_sidebar.html:19
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:213
+#: part/templates/part/part_sidebar.html:52 stock/templates/stock/item.html:112
+#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr "Pieces jointes"
#: build/templates/build/detail.html:294
msgid "Build Notes"
-msgstr ""
+msgstr "Notes de construction"
#: build/templates/build/detail.html:298 build/templates/build/detail.html:453
#: company/templates/company/detail.html:188
@@ -1360,38 +1361,38 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:108
#: order/templates/order/sales_order_detail.html:127
#: order/templates/order/sales_order_detail.html:186
-#: part/templates/part/detail.html:124 stock/templates/stock/item.html:115
-#: stock/templates/stock/item.html:205
+#: part/templates/part/detail.html:141 stock/templates/stock/item.html:132
+#: stock/templates/stock/item.html:235
msgid "Edit Notes"
msgstr "Modifier les notes"
#: build/templates/build/detail.html:477
msgid "Allocation Complete"
-msgstr ""
+msgstr "Allocation terminée"
#: build/templates/build/detail.html:478
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:303
+#: build/templates/build/index.html:18 part/templates/part/detail.html:320
msgid "New Build Order"
-msgstr ""
+msgstr "Nouvel ordre de construction"
#: build/templates/build/index.html:37 build/templates/build/index.html:38
msgid "Print Build Orders"
-msgstr ""
+msgstr "Imprimer les commandes de construction"
#: build/templates/build/index.html:44
#: order/templates/order/purchase_orders.html:34
#: order/templates/order/sales_orders.html:37
msgid "Display calendar view"
-msgstr ""
+msgstr "Affichage du calendrier"
#: build/templates/build/index.html:47
#: order/templates/order/purchase_orders.html:37
#: order/templates/order/sales_orders.html:40
msgid "Display list view"
-msgstr ""
+msgstr "Affichage en liste"
#: build/templates/build/sidebar.html:5
msgid "Build Order Details"
@@ -1403,11 +1404,11 @@ msgstr "Articles en attente"
#: build/templates/build/sidebar.html:15
msgid "Completed Items"
-msgstr ""
+msgstr "Articles terminés"
#: build/views.py:76
msgid "Build was cancelled"
-msgstr ""
+msgstr "La construction a été annulée"
#: build/views.py:88
msgid "Create Build Output"
@@ -1419,7 +1420,7 @@ msgstr "La quantité maximale de sortie est "
#: build/views.py:122 stock/serializers.py:363 stock/views.py:1257
msgid "Serial numbers already exist"
-msgstr ""
+msgstr "Les numéros de série existent déjà"
#: build/views.py:131
msgid "Serial numbers required for trackable build output"
@@ -1435,7 +1436,7 @@ msgstr ""
#: build/views.py:219 stock/views.py:352
msgid "Check the confirmation box"
-msgstr ""
+msgstr "Cocher la case de confirmation"
#: build/views.py:231
msgid "Build output does not match build"
@@ -1451,27 +1452,27 @@ msgstr ""
#: build/views.py:286
msgid "Delete Build Order"
-msgstr ""
+msgstr "Supprimer l'ordre de construction"
-#: common/files.py:67
+#: common/files.py:65
msgid "Unsupported file format: {ext.upper()}"
msgstr "Format de fichier non pris en charge : {ext.upper()}"
-#: common/files.py:69
+#: common/files.py:67
msgid "Error reading file (invalid encoding)"
-msgstr ""
+msgstr "Erreur de lecture du fichier (encodage invalide)"
+
+#: common/files.py:72
+msgid "Error reading file (invalid format)"
+msgstr "Erreur de lecture du fichier (format invalide)"
#: common/files.py:74
-msgid "Error reading file (invalid format)"
-msgstr ""
+msgid "Error reading file (incorrect dimension)"
+msgstr "Erreur de lecture du fichier (dimension incorrecte)"
#: common/files.py:76
-msgid "Error reading file (incorrect dimension)"
-msgstr ""
-
-#: common/files.py:78
msgid "Error reading file (data could be corrupted)"
-msgstr ""
+msgstr "Erreur de lecture du fichier (les données pourraient être corrompues)"
#: common/forms.py:34
msgid "File"
@@ -1488,742 +1489,830 @@ msgstr "{name.title()} Fichier"
#: common/forms.py:51
#, python-brace-format
msgid "Select {name} file to upload"
+msgstr "Sélectionner le fichier {name} à uploader"
+
+#: common/models.py:352
+msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:344 common/models.py:998 common/models.py:1206
-msgid "Settings key (must be unique - case insensitive"
-msgstr ""
-
-#: common/models.py:346
+#: common/models.py:354
msgid "Settings value"
-msgstr ""
+msgstr "Valeur du paramètre"
-#: common/models.py:380
+#: common/models.py:388
msgid "Chosen value is not a valid option"
-msgstr ""
+msgstr "La valeur choisie n'est pas une option valide"
-#: common/models.py:400
+#: common/models.py:408
msgid "Value must be a boolean value"
-msgstr ""
+msgstr "La valeur doit être une valeur booléenne"
-#: common/models.py:411
+#: common/models.py:419
msgid "Value must be an integer value"
-msgstr ""
+msgstr "La valeur doit être un nombre entier"
-#: common/models.py:434
+#: common/models.py:442
msgid "Key string must be unique"
-msgstr ""
+msgstr "La chaîne de caractères constituant la clé doit être unique"
-#: common/models.py:553
+#: common/models.py:561
msgid "No group"
msgstr "Pas de groupe"
-#: common/models.py:595
+#: common/models.py:603
msgid "Restart required"
msgstr "Redémarrage nécessaire"
-#: common/models.py:596
+#: common/models.py:604
msgid "A setting has been changed which requires a server restart"
-msgstr ""
+msgstr "Un paramètre a été modifié, ce qui nécessite un redémarrage du serveur"
-#: common/models.py:603
+#: common/models.py:611
msgid "InvenTree Instance Name"
-msgstr ""
+msgstr "Nom de l'instance InvenTree"
-#: common/models.py:605
+#: common/models.py:613
msgid "String descriptor for the server instance"
-msgstr ""
+msgstr "Chaîne de caractères descriptive pour l'instance serveur"
-#: common/models.py:609
+#: common/models.py:617
msgid "Use instance name"
-msgstr ""
+msgstr "Utiliser le nom de l'instance"
-#: common/models.py:610
+#: common/models.py:618
msgid "Use the instance name in the title-bar"
-msgstr ""
+msgstr "Utiliser le nom de l’instance dans la barre de titre"
-#: common/models.py:616 company/models.py:100 company/models.py:101
+#: common/models.py:624 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr "Nom de la société"
-#: common/models.py:617
+#: common/models.py:625
msgid "Internal company name"
-msgstr ""
+msgstr "Nom de société interne"
-#: common/models.py:622
+#: common/models.py:630
msgid "Base URL"
-msgstr ""
+msgstr "URL de base"
-#: common/models.py:623
+#: common/models.py:631
msgid "Base URL for server instance"
-msgstr ""
+msgstr "URL de base pour l'instance serveur"
-#: common/models.py:629
+#: common/models.py:637
msgid "Default Currency"
msgstr "Devise par défaut"
-#: common/models.py:630
+#: common/models.py:638
msgid "Default currency"
msgstr "Devises par défaut"
-#: common/models.py:636
+#: common/models.py:644
msgid "Download from URL"
msgstr "Télécharger depuis l'URL"
-#: common/models.py:637
+#: common/models.py:645
msgid "Allow download of remote images and files from external URL"
-msgstr ""
+msgstr "Autoriser le téléchargement d'images distantes et de fichiers à partir d'URLs externes"
-#: common/models.py:643 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:651 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
-msgstr ""
+msgstr "Support des code-barres"
-#: common/models.py:644
+#: common/models.py:652
msgid "Enable barcode scanner support"
-msgstr ""
+msgstr "Activer le support du scanner de code-barres"
-#: common/models.py:650
+#: common/models.py:658
msgid "IPN Regex"
msgstr "Regex IPN"
-#: common/models.py:651
+#: common/models.py:659
msgid "Regular expression pattern for matching Part IPN"
msgstr "Expression régulière pour la correspondance avec l'IPN de la Pièce"
-#: common/models.py:655
+#: common/models.py:663
msgid "Allow Duplicate IPN"
msgstr "Autoriser les IPN dupliqués"
-#: common/models.py:656
+#: common/models.py:664
msgid "Allow multiple parts to share the same IPN"
msgstr "Permettre à plusieurs pièces de partager le même IPN"
-#: common/models.py:662
+#: common/models.py:670
msgid "Allow Editing IPN"
msgstr "Autoriser l'édition de l'IPN"
-#: common/models.py:663
+#: common/models.py:671
msgid "Allow changing the IPN value while editing a part"
msgstr "Permettre de modifier la valeur de l'IPN lors de l'édition d'une pièce"
-#: common/models.py:669
+#: common/models.py:677
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:670
+#: common/models.py:678
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:676
-msgid "Copy Part Parameter Data"
-msgstr ""
-
-#: common/models.py:677
-msgid "Copy parameter data by default when duplicating a part"
-msgstr ""
-
-#: common/models.py:683
-msgid "Copy Part Test Data"
-msgstr ""
-
#: common/models.py:684
-msgid "Copy test data by default when duplicating a part"
-msgstr ""
+msgid "Copy Part Parameter Data"
+msgstr "Copier les données des paramètres de la pièce"
-#: common/models.py:690
-msgid "Copy Category Parameter Templates"
-msgstr ""
+#: common/models.py:685
+msgid "Copy parameter data by default when duplicating a part"
+msgstr "Copier les données des paramètres par défaut lors de la duplication d'une pièce"
#: common/models.py:691
-msgid "Copy category parameter templates when creating a part"
-msgstr ""
+msgid "Copy Part Test Data"
+msgstr "Copier les données de test de la pièce"
-#: common/models.py:697 part/models.py:2482 report/models.py:187
+#: common/models.py:692
+msgid "Copy test data by default when duplicating a part"
+msgstr "Copier les données de test par défaut lors de la duplication d'une pièce"
+
+#: common/models.py:698
+msgid "Copy Category Parameter Templates"
+msgstr "Copier les templates de paramètres de catégorie"
+
+#: common/models.py:699
+msgid "Copy category parameter templates when creating a part"
+msgstr "Copier les templates de paramètres de la catégorie lors de la création d'une pièce"
+
+#: common/models.py:705 part/models.py:2489 report/models.py:187
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:422
msgid "Template"
-msgstr ""
+msgstr "Template"
-#: common/models.py:698
+#: common/models.py:706
msgid "Parts are templates by default"
-msgstr ""
+msgstr "Les pièces sont des templates par défaut"
-#: common/models.py:704 part/models.py:919 templates/js/translated/bom.js:1068
+#: common/models.py:712 part/models.py:921 templates/js/translated/bom.js:1082
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:434
msgid "Assembly"
msgstr ""
-#: common/models.py:705
+#: common/models.py:713
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:711 part/models.py:925
+#: common/models.py:719 part/models.py:927
#: templates/js/translated/table_filters.js:438
msgid "Component"
msgstr "Composant"
-#: common/models.py:712
+#: common/models.py:720
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:718 part/models.py:936
+#: common/models.py:726 part/models.py:938
msgid "Purchaseable"
msgstr "Achetable"
-#: common/models.py:719
+#: common/models.py:727
msgid "Parts are purchaseable by default"
msgstr "Les pièces sont achetables par défaut"
-#: common/models.py:725 part/models.py:941
+#: common/models.py:733 part/models.py:943
#: templates/js/translated/table_filters.js:446
msgid "Salable"
-msgstr ""
+msgstr "Vendable"
-#: common/models.py:726
+#: common/models.py:734
msgid "Parts are salable by default"
-msgstr ""
+msgstr "Les pièces sont vendables par défaut"
-#: common/models.py:732 part/models.py:931
+#: common/models.py:740 part/models.py:933
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
#: templates/js/translated/table_filters.js:450
msgid "Trackable"
-msgstr ""
+msgstr "Traçable"
-#: common/models.py:733
+#: common/models.py:741
msgid "Parts are trackable by default"
-msgstr ""
+msgstr "Les pièces sont traçables par défaut"
-#: common/models.py:739 part/models.py:951
+#: common/models.py:747 part/models.py:953
#: part/templates/part/part_base.html:147
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
-msgstr ""
+msgstr "Virtuelle"
-#: common/models.py:740
+#: common/models.py:748
msgid "Parts are virtual by default"
-msgstr ""
+msgstr "Les pièces sont virtuelles par défaut"
-#: common/models.py:746
+#: common/models.py:754
msgid "Show Import in Views"
-msgstr ""
+msgstr "Afficher l'import dans les vues"
-#: common/models.py:747
+#: common/models.py:755
msgid "Display the import wizard in some part views"
msgstr "Afficher l'assistant d'importation pour certaine vues de produits"
-#: common/models.py:753
+#: common/models.py:761
msgid "Show Price in Forms"
-msgstr ""
+msgstr "Afficher le prix dans les formulaires"
-#: common/models.py:754
+#: common/models.py:762
msgid "Display part price in some forms"
-msgstr ""
-
-#: common/models.py:765
-msgid "Show Price in BOM"
-msgstr ""
-
-#: common/models.py:766
-msgid "Include pricing information in BOM tables"
-msgstr ""
-
-#: common/models.py:772
-msgid "Show related parts"
-msgstr ""
+msgstr "Afficher le prix de la pièce dans certains formulaires"
#: common/models.py:773
-msgid "Display related parts for a part"
-msgstr ""
+msgid "Show Price in BOM"
+msgstr "Afficher le prix dans la BOM"
-#: common/models.py:779
-msgid "Create initial stock"
-msgstr ""
+#: common/models.py:774
+msgid "Include pricing information in BOM tables"
+msgstr "Inclure les informations de prix dans les tableaux de la BOM"
#: common/models.py:780
-msgid "Create initial stock on part creation"
-msgstr ""
+msgid "Show related parts"
+msgstr "Afficher les pièces connexes"
-#: common/models.py:786
-msgid "Internal Prices"
-msgstr ""
+#: common/models.py:781
+msgid "Display related parts for a part"
+msgstr "Afficher les pièces connexes à une pièce"
#: common/models.py:787
-msgid "Enable internal prices for parts"
-msgstr ""
+msgid "Create initial stock"
+msgstr "Créer un stock initial"
-#: common/models.py:793
+#: common/models.py:788
+msgid "Create initial stock on part creation"
+msgstr "Créer le stock initial lors de la création d'une pièce"
+
+#: common/models.py:794
+msgid "Internal Prices"
+msgstr "Prix internes"
+
+#: common/models.py:795
+msgid "Enable internal prices for parts"
+msgstr "Activer les prix internes pour les pièces"
+
+#: common/models.py:801
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:794
+#: common/models.py:802
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:800
+#: common/models.py:808
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:801
+#: common/models.py:809
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:808
+#: common/models.py:816
msgid "Enable Reports"
msgstr ""
-#: common/models.py:809
+#: common/models.py:817
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:815 templates/stats.html:25
+#: common/models.py:823 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:816
+#: common/models.py:824
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:822
+#: common/models.py:830
msgid "Page Size"
msgstr "Taille de la page"
-#: common/models.py:823
+#: common/models.py:831
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:833
+#: common/models.py:841
msgid "Test Reports"
msgstr "Rapports de test"
-#: common/models.py:834
+#: common/models.py:842
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:840
+#: common/models.py:848
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:841
+#: common/models.py:849
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:847
+#: common/models.py:855
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:848
+#: common/models.py:856
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:854
+#: common/models.py:862
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:855
+#: common/models.py:863
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:857
+#: common/models.py:865
msgid "days"
msgstr "jours"
-#: common/models.py:862
+#: common/models.py:870
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:863
+#: common/models.py:871
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:869
+#: common/models.py:877
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:870
+#: common/models.py:878
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:876
-msgid "Group by Part"
-msgstr ""
-
-#: common/models.py:877
-msgid "Group stock items by part reference in table views"
-msgstr ""
-
-#: common/models.py:883
+#: common/models.py:884
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:884
+#: common/models.py:885
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:889
+#: common/models.py:890
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:890
+#: common/models.py:891
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:894
+#: common/models.py:895
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:895
+#: common/models.py:896
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:900
+#: common/models.py:901
msgid "Purchase Order Reference Prefix"
msgstr "Préfixe des commandes d'achats"
-#: common/models.py:901
+#: common/models.py:902
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:907
+#: common/models.py:908
msgid "Enable password forgot"
msgstr "Activer les mots de passe oubliés"
-#: common/models.py:908
+#: common/models.py:909
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:913
+#: common/models.py:914
msgid "Enable registration"
msgstr "Activer les inscriptions"
-#: common/models.py:914
+#: common/models.py:915
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:919
+#: common/models.py:920
msgid "Enable SSO"
msgstr "Activer le SSO"
-#: common/models.py:920
+#: common/models.py:921
msgid "Enable SSO on the login pages"
msgstr "Activer le SSO sur les pages de connexion"
-#: common/models.py:925
+#: common/models.py:926
msgid "Email required"
msgstr "Email requis"
-#: common/models.py:926
+#: common/models.py:927
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:931
+#: common/models.py:932
msgid "Auto-fill SSO users"
msgstr "Saisie automatique des utilisateurs SSO"
-#: common/models.py:932
+#: common/models.py:933
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:937
+#: common/models.py:938
msgid "Mail twice"
msgstr "Courriel en double"
-#: common/models.py:938
+#: common/models.py:939
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:943
+#: common/models.py:944
msgid "Password twice"
msgstr ""
-#: common/models.py:944
+#: common/models.py:945
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:949
+#: common/models.py:950
msgid "Group on signup"
msgstr ""
-#: common/models.py:950
+#: common/models.py:951
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:955
+#: common/models.py:956
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:956
+#: common/models.py:957
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:961
+#: common/models.py:964
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:962
+#: common/models.py:965
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:968
+#: common/models.py:971
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:969
+#: common/models.py:972
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:975
+#: common/models.py:978
msgid "Enable app integration"
-msgstr ""
+msgstr "Activer l'intégration de plugins"
-#: common/models.py:976
+#: common/models.py:979
msgid "Enable plugins to add apps"
-msgstr ""
+msgstr "Activer l'intégration de plugin pour ajouter des apps"
-#: common/models.py:982
+#: common/models.py:985
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:983
+#: common/models.py:986
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1029
+#: common/models.py:992
+msgid "Enable event integration"
+msgstr ""
+
+#: common/models.py:993
+msgid "Enable plugins to respond to internal events"
+msgstr ""
+
+#: common/models.py:1008 common/models.py:1216
+msgid "Settings key (must be unique - case insensitive"
+msgstr "Clé du paramètre (doit être unique - insensible à la casse)"
+
+#: common/models.py:1039
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1030
+#: common/models.py:1040
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1035
+#: common/models.py:1045
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1036
+#: common/models.py:1046
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1041
+#: common/models.py:1051
msgid "Show latest parts"
msgstr "Afficher les dernières pièces"
-#: common/models.py:1042
+#: common/models.py:1052
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1047
+#: common/models.py:1057
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1048
+#: common/models.py:1058
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1054
+#: common/models.py:1064
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1055
+#: common/models.py:1065
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1070
msgid "Show recent stock changes"
msgstr "Afficher les dernières modifications du stock"
-#: common/models.py:1061
+#: common/models.py:1071
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1066
+#: common/models.py:1076
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1067
+#: common/models.py:1077
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1072
+#: common/models.py:1082
msgid "Show low stock"
msgstr ""
-#: common/models.py:1073
+#: common/models.py:1083
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1078
+#: common/models.py:1088
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1079
+#: common/models.py:1089
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1084
+#: common/models.py:1094
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1085
+#: common/models.py:1095
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1090
+#: common/models.py:1100
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1091
+#: common/models.py:1101
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1096
+#: common/models.py:1106
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1097
+#: common/models.py:1107
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1102
+#: common/models.py:1112
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1103
+#: common/models.py:1113
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1108
+#: common/models.py:1118
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1109
+#: common/models.py:1119
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1114
+#: common/models.py:1124
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1115
+#: common/models.py:1125
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1120
+#: common/models.py:1130
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1121
+#: common/models.py:1131
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1136
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1127
+#: common/models.py:1137
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1142
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1143
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1149
msgid "Inline label display"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1150
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1156
msgid "Inline report display"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1157
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1163
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1164
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1170
msgid "Search Show Stock"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1171
msgid "Display stock levels in search preview window"
msgstr ""
-#: common/models.py:1167
+#: common/models.py:1177
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1178
msgid "Hide inactive parts in search preview window"
msgstr ""
-#: common/models.py:1174
+#: common/models.py:1184
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1175
+#: common/models.py:1185
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1181
+#: common/models.py:1191
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1182
+#: common/models.py:1192
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1188
+#: common/models.py:1198
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1199
msgid "InvenTree navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1254 company/forms.py:43
+#: common/models.py:1264 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1261 company/serializers.py:264
+#: common/models.py:1271 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:909 templates/js/translated/part.js:1860
+#: templates/js/translated/part.js:915 templates/js/translated/part.js:1867
msgid "Price"
msgstr ""
-#: common/models.py:1262
+#: common/models.py:1272
msgid "Unit price at specified quantity"
msgstr ""
+#: common/models.py:1429 common/models.py:1568
+msgid "Endpoint"
+msgstr ""
+
+#: common/models.py:1430
+msgid "Endpoint at which this webhook is received"
+msgstr ""
+
+#: common/models.py:1439
+msgid "Name for this webhook"
+msgstr ""
+
+#: common/models.py:1444 part/models.py:948 plugin/models.py:46
+#: templates/js/translated/table_filters.js:34
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:295
+#: templates/js/translated/table_filters.js:417
+msgid "Active"
+msgstr "Actif"
+
+#: common/models.py:1445
+msgid "Is this webhook active"
+msgstr ""
+
+#: common/models.py:1459
+msgid "Token"
+msgstr ""
+
+#: common/models.py:1460
+msgid "Token for access"
+msgstr ""
+
+#: common/models.py:1467
+msgid "Secret"
+msgstr ""
+
+#: common/models.py:1468
+msgid "Shared secret for HMAC"
+msgstr ""
+
+#: common/models.py:1535
+msgid "Message ID"
+msgstr ""
+
+#: common/models.py:1536
+msgid "Unique identifier for this message"
+msgstr ""
+
+#: common/models.py:1544
+msgid "Host"
+msgstr ""
+
+#: common/models.py:1545
+msgid "Host from which this message was received"
+msgstr ""
+
+#: common/models.py:1552
+msgid "Header"
+msgstr ""
+
+#: common/models.py:1553
+msgid "Header of this message"
+msgstr ""
+
+#: common/models.py:1559
+msgid "Body"
+msgstr ""
+
+#: common/models.py:1560
+msgid "Body of this message"
+msgstr ""
+
+#: common/models.py:1569
+msgid "Endpoint on which this message was received"
+msgstr ""
+
+#: common/models.py:1574
+msgid "Worked on"
+msgstr ""
+
+#: common/models.py:1575
+msgid "Was the work on this message finished?"
+msgstr ""
+
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
#: part/templates/part/bom_upload/upload_file.html:52
-#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
-#: part/views.py:764
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:213
+#: part/views.py:773
msgid "Upload File"
msgstr ""
#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
-#: part/views.py:765
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:214
+#: part/views.py:774
msgid "Match Fields"
msgstr ""
@@ -2315,7 +2404,7 @@ msgstr "Point de contact"
msgid "Link to external company information"
msgstr "Lien externe vers les informations de l'entreprise"
-#: company/models.py:139 part/models.py:838
+#: company/models.py:139 part/models.py:840
msgid "Image"
msgstr "Image"
@@ -2352,8 +2441,8 @@ msgstr "Devise"
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:469
-#: stock/templates/stock/item_base.html:142
+#: company/models.py:320 company/models.py:535 stock/models.py:471
+#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:328
msgid "Base Part"
msgstr ""
@@ -2380,7 +2469,7 @@ msgstr "Sélectionner un fabricant"
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:818 templates/js/translated/order.js:1038
-#: templates/js/translated/part.js:245 templates/js/translated/part.js:889
+#: templates/js/translated/part.js:245 templates/js/translated/part.js:895
msgid "MPN"
msgstr ""
@@ -2409,8 +2498,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1960 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:709 templates/js/translated/stock.js:1296
+#: stock/models.py:1988 templates/js/translated/company.js:647
+#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1304
msgid "Value"
msgstr "Valeur"
@@ -2418,10 +2507,10 @@ msgstr "Valeur"
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:913 part/models.py:2450
+#: company/models.py:429 part/models.py:915 part/models.py:2457
#: part/templates/part/part_base.html:288
-#: templates/InvenTree/settings/settings.html:284
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:715
+#: templates/InvenTree/settings/settings.html:287
+#: templates/js/translated/company.js:653 templates/js/translated/part.js:721
msgid "Units"
msgstr ""
@@ -2434,13 +2523,13 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:78
-#: company/templates/company/supplier_part.html:87 order/models.py:224
+#: company/templates/company/supplier_part.html:87 order/models.py:227
#: order/templates/order/order_base.html:112
-#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
-#: part/bom.py:247 stock/templates/stock/item_base.html:397
+#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237
+#: part/bom.py:265 stock/templates/stock/item_base.html:397
#: templates/js/translated/company.js:337
#: templates/js/translated/company.js:774 templates/js/translated/order.js:823
-#: templates/js/translated/part.js:215 templates/js/translated/part.js:857
+#: templates/js/translated/part.js:215 templates/js/translated/part.js:863
#: templates/js/translated/table_filters.js:393
msgid "Supplier"
msgstr "Fournisseur"
@@ -2450,8 +2539,8 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:1025
-#: templates/js/translated/part.js:226 templates/js/translated/part.js:875
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1025
+#: templates/js/translated/part.js:226 templates/js/translated/part.js:881
msgid "SKU"
msgstr ""
@@ -2472,22 +2561,22 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:119
-#: part/models.py:2641 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2648 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:580 part/models.py:1779
+#: company/models.py:580 part/models.py:1781
msgid "base cost"
msgstr "coût de base"
-#: company/models.py:580 part/models.py:1779
+#: company/models.py:580 part/models.py:1781
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:493 stock/templates/stock/item_base.html:338
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1791
+#: stock/models.py:495 stock/templates/stock/item_base.html:338
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1799
msgid "Packaging"
msgstr ""
@@ -2495,7 +2584,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1781
+#: company/models.py:584 part/models.py:1783
msgid "multiple"
msgstr ""
@@ -2554,12 +2643,12 @@ msgstr "Ajouter une nouvelle image"
msgid "Download image from URL"
msgstr "Télécharger l'image depuis l'URL"
-#: company/templates/company/company_base.html:83 order/models.py:547
-#: order/templates/order/sales_order_base.html:115 stock/models.py:512
-#: stock/models.py:513 stock/serializers.py:625
+#: company/templates/company/company_base.html:83 order/models.py:552
+#: order/templates/order/sales_order_base.html:115 stock/models.py:514
+#: stock/models.py:515 stock/serializers.py:626
#: stock/templates/stock/item_base.html:290
#: templates/js/translated/company.js:329 templates/js/translated/order.js:1240
-#: templates/js/translated/stock.js:2452
+#: templates/js/translated/stock.js:2610
#: templates/js/translated/table_filters.js:397
msgid "Customer"
msgstr ""
@@ -2590,7 +2679,7 @@ msgstr ""
#: company/templates/company/detail.html:20
#: company/templates/company/manufacturer_part.html:118
-#: part/templates/part/detail.html:336
+#: part/templates/part/detail.html:353
msgid "New Supplier Part"
msgstr ""
@@ -2598,8 +2687,8 @@ msgstr ""
#: company/templates/company/detail.html:79
#: company/templates/company/manufacturer_part.html:127
#: company/templates/company/manufacturer_part.html:156
-#: part/templates/part/category.html:171 part/templates/part/detail.html:345
-#: part/templates/part/detail.html:374
+#: part/templates/part/category.html:171 part/templates/part/detail.html:362
+#: part/templates/part/detail.html:391
msgid "Options"
msgstr ""
@@ -2627,7 +2716,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:364
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:381
msgid "New Manufacturer Part"
msgstr ""
@@ -2641,7 +2730,7 @@ msgstr ""
#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:68 part/templates/part/part_sidebar.html:33
+#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
@@ -2663,7 +2752,7 @@ msgstr "Nouvelle commande achat"
#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:91 part/templates/part/part_sidebar.html:37
+#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:41
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
@@ -2691,13 +2780,13 @@ msgstr ""
#: company/templates/company/detail.html:384
#: company/templates/company/manufacturer_part.html:215
-#: part/templates/part/detail.html:418
+#: part/templates/part/detail.html:435
msgid "Delete Supplier Parts?"
msgstr ""
#: company/templates/company/detail.html:385
#: company/templates/company/manufacturer_part.html:216
-#: part/templates/part/detail.html:419
+#: part/templates/part/detail.html:436
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2714,7 +2803,7 @@ msgstr "Fabricants"
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:34
#: company/templates/company/supplier_part.html:159
-#: part/templates/part/detail.html:71 part/templates/part/part_base.html:76
+#: part/templates/part/detail.html:88 part/templates/part/part_base.html:76
msgid "Order part"
msgstr ""
@@ -2735,34 +2824,34 @@ msgstr "Pièces Internes"
#: company/templates/company/manufacturer_part.html:114
#: company/templates/company/supplier_part.html:15 company/views.py:49
-#: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163
+#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:163
#: templates/InvenTree/search.html:188 templates/navbar.html:45
msgid "Suppliers"
msgstr "Fournisseurs"
#: company/templates/company/manufacturer_part.html:129
-#: part/templates/part/detail.html:347
+#: part/templates/part/detail.html:364
msgid "Delete supplier parts"
msgstr "Supprimer les pièces du fournisseur"
#: company/templates/company/manufacturer_part.html:129
#: company/templates/company/manufacturer_part.html:158
#: company/templates/company/manufacturer_part.html:254
-#: part/templates/part/detail.html:347 part/templates/part/detail.html:376
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:393
#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31
-#: users/models.py:210
+#: users/models.py:212
msgid "Delete"
msgstr "Supprimer"
#: company/templates/company/manufacturer_part.html:143
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:17
-#: part/templates/part/detail.html:170 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:187 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr "Paramètres"
#: company/templates/company/manufacturer_part.html:147
-#: part/templates/part/detail.html:175
+#: part/templates/part/detail.html:192
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
@@ -2773,7 +2862,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:191
-#: part/templates/part/detail.html:862
+#: part/templates/part/detail.html:892
msgid "Add Parameter"
msgstr ""
@@ -2802,9 +2891,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:477
+#: company/templates/company/supplier_part.html:24 stock/models.py:479
#: stock/templates/stock/item_base.html:402
-#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1748
+#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1756
msgid "Supplier Part"
msgstr ""
@@ -2830,7 +2919,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:167
-#: templates/js/translated/stock.js:360
+#: templates/js/translated/stock.js:368
msgid "New Stock Item"
msgstr ""
@@ -2840,7 +2929,7 @@ msgid "Supplier Part Orders"
msgstr ""
#: company/templates/company/supplier_part.html:160
-#: part/templates/part/detail.html:72
+#: part/templates/part/detail.html:89
msgid "Order Part"
msgstr ""
@@ -2851,7 +2940,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1619
+#: part/templates/part/prices.html:271 part/views.py:1628
msgid "Add Price Break"
msgstr ""
@@ -2859,11 +2948,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1681
+#: company/templates/company/supplier_part.html:224 part/views.py:1690
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1667
+#: company/templates/company/supplier_part.html:238 part/views.py:1676
msgid "Edit Price Break"
msgstr ""
@@ -2881,10 +2970,10 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:150
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/bom.js:328 templates/js/translated/part.js:489
-#: templates/js/translated/part.js:624 templates/js/translated/part.js:1118
-#: templates/js/translated/part.js:1279 templates/js/translated/stock.js:927
-#: templates/js/translated/stock.js:1580 templates/navbar.html:28
+#: templates/js/translated/bom.js:340 templates/js/translated/part.js:495
+#: templates/js/translated/part.js:630 templates/js/translated/part.js:1125
+#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:935
+#: templates/js/translated/stock.js:1588 templates/navbar.html:28
msgid "Stock"
msgstr "Stock"
@@ -2907,8 +2996,8 @@ msgstr "Tarif"
#: stock/templates/stock/location.html:151
#: stock/templates/stock/location.html:163
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2351
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2509
+#: templates/stats.html:105 templates/stats.html:114 users/models.py:43
msgid "Stock Items"
msgstr "Éléments en stock"
@@ -2937,20 +3026,20 @@ msgstr "Entreprises"
msgid "New Company"
msgstr "Nouvelle Entreprise"
-#: company/views.py:129 part/views.py:584
+#: company/views.py:129 part/views.py:593
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:616
+#: company/views.py:158 part/views.py:625
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:623
+#: company/views.py:165 part/views.py:632
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:632
+#: company/views.py:174 part/views.py:641
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3036,282 +3125,282 @@ msgstr "Marquer la commande comme complète"
msgid "Cancel order"
msgstr "Annuler la commande"
-#: order/models.py:122
+#: order/models.py:125
msgid "Order description"
msgstr "Description de la commande"
-#: order/models.py:124
+#: order/models.py:127
msgid "Link to external page"
msgstr "Lien vers une page externe"
-#: order/models.py:132
+#: order/models.py:135
msgid "Created By"
msgstr "Créé par"
-#: order/models.py:139
+#: order/models.py:142
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:144
+#: order/models.py:147
msgid "Order notes"
msgstr ""
-#: order/models.py:211 order/models.py:537
+#: order/models.py:214 order/models.py:542
msgid "Order reference"
msgstr ""
-#: order/models.py:216 order/models.py:552
+#: order/models.py:219 order/models.py:557
msgid "Purchase order status"
msgstr ""
-#: order/models.py:225
+#: order/models.py:228
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:228 order/templates/order/order_base.html:118
+#: order/models.py:231 order/templates/order/order_base.html:118
#: templates/js/translated/order.js:832
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:228
+#: order/models.py:231
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:235
+#: order/models.py:238
msgid "received by"
msgstr ""
-#: order/models.py:240
+#: order/models.py:243
msgid "Issue Date"
msgstr ""
-#: order/models.py:241
+#: order/models.py:244
msgid "Date order was issued"
msgstr ""
-#: order/models.py:246
+#: order/models.py:249
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:247
+#: order/models.py:250
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:253
+#: order/models.py:256
msgid "Date order was completed"
msgstr ""
-#: order/models.py:282
+#: order/models.py:285
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:411
-msgid "Quantity must be an integer"
-msgstr ""
-
-#: order/models.py:415
+#: order/models.py:420
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:548
+#: order/models.py:553
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:554
+#: order/models.py:559
msgid "Customer Reference "
msgstr ""
-#: order/models.py:554
+#: order/models.py:559
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:559
+#: order/models.py:564
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:562 order/models.py:1028
+#: order/models.py:567 order/models.py:1048
#: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429
msgid "Shipment Date"
msgstr ""
-#: order/models.py:569
+#: order/models.py:574
msgid "shipped by"
msgstr "expédié par"
-#: order/models.py:635
+#: order/models.py:640
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:639
+#: order/models.py:644
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:642
+#: order/models.py:647
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:645
+#: order/models.py:650
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:797
+#: order/models.py:806
msgid "Item quantity"
msgstr "Nombre d'élement"
-#: order/models.py:803
+#: order/models.py:812
msgid "Line item reference"
msgstr ""
-#: order/models.py:805
+#: order/models.py:814
msgid "Line item notes"
msgstr ""
-#: order/models.py:835 order/models.py:926 order/models.py:1022
-#: templates/js/translated/order.js:1820
+#: order/models.py:842
+msgid "Supplier part must match supplier"
+msgstr ""
+
+#: order/models.py:855 order/models.py:946 order/models.py:1042
+#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2271
msgid "Order"
msgstr "Commande"
-#: order/models.py:836 order/templates/order/order_base.html:9
+#: order/models.py:856 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:352
-#: templates/js/translated/order.js:801 templates/js/translated/part.js:832
-#: templates/js/translated/stock.js:1725 templates/js/translated/stock.js:2433
+#: templates/js/translated/order.js:801 templates/js/translated/part.js:838
+#: templates/js/translated/stock.js:1733 templates/js/translated/stock.js:2591
msgid "Purchase Order"
msgstr "Commande d’achat"
-#: order/models.py:857
+#: order/models.py:877
msgid "Supplier part"
msgstr "Pièce fournisseur"
-#: order/models.py:864 order/templates/order/order_base.html:163
+#: order/models.py:884 order/templates/order/order_base.html:163
#: templates/js/translated/order.js:589 templates/js/translated/order.js:1118
-#: templates/js/translated/part.js:904 templates/js/translated/part.js:930
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:937
#: templates/js/translated/table_filters.js:317
msgid "Received"
msgstr "Reçu"
-#: order/models.py:865
+#: order/models.py:885
msgid "Number of items received"
msgstr "Nombre d'éléments reçus"
-#: order/models.py:872 part/templates/part/prices.html:176 stock/models.py:606
+#: order/models.py:892 part/templates/part/prices.html:176 stock/models.py:608
#: stock/serializers.py:170 stock/templates/stock/item_base.html:359
-#: templates/js/translated/stock.js:1779
+#: templates/js/translated/stock.js:1787
msgid "Purchase Price"
msgstr "Prix d'achat"
-#: order/models.py:873
+#: order/models.py:893
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:881
+#: order/models.py:901
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:936 part/templates/part/part_pricing.html:112
+#: order/models.py:956 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr "Prix de vente"
-#: order/models.py:937
+#: order/models.py:957
msgid "Unit sale price"
msgstr ""
-#: order/models.py:942
+#: order/models.py:962
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1029
+#: order/models.py:1049
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1036
+#: order/models.py:1056
msgid "Checked By"
msgstr ""
-#: order/models.py:1037
+#: order/models.py:1057
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1045
+#: order/models.py:1065
msgid "Shipment number"
msgstr ""
-#: order/models.py:1052
+#: order/models.py:1072
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1059
+#: order/models.py:1079
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1060
+#: order/models.py:1080
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1070
+#: order/models.py:1090
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1073
+#: order/models.py:1093
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1149 order/models.py:1151
+#: order/models.py:1171 order/models.py:1173
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1155
+#: order/models.py:1177
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1157
+#: order/models.py:1179
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1160
+#: order/models.py:1182
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1164
+#: order/models.py:1186
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:1170 order/serializers.py:734
+#: order/models.py:1192 order/serializers.py:740
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1173
+#: order/models.py:1195
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1174
+#: order/models.py:1196
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1182
+#: order/models.py:1204
msgid "Line"
msgstr "Ligne"
-#: order/models.py:1190 order/serializers.py:825 order/serializers.py:953
-#: templates/js/translated/model_renderers.js:251
+#: order/models.py:1212 order/serializers.py:831 order/serializers.py:959
+#: templates/js/translated/model_renderers.js:285
msgid "Shipment"
msgstr ""
-#: order/models.py:1191
+#: order/models.py:1213
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1203
+#: order/models.py:1225
msgid "Item"
msgstr "Article"
-#: order/models.py:1204
+#: order/models.py:1226
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1207
+#: order/models.py:1229
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3319,7 +3408,7 @@ msgstr ""
msgid "Purchase price currency"
msgstr "Devise du prix d'achat"
-#: order/serializers.py:211 order/serializers.py:790
+#: order/serializers.py:211 order/serializers.py:796
msgid "Line Item"
msgstr ""
@@ -3355,41 +3444,41 @@ msgstr ""
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:581
+#: order/serializers.py:587
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:649
+#: order/serializers.py:655
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:699 order/serializers.py:802
+#: order/serializers.py:705 order/serializers.py:808
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:721
+#: order/serializers.py:727
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:815
+#: order/serializers.py:821
msgid "Enter serial numbers to allocate"
-msgstr ""
+msgstr "Entrez les numéros de série à allouer"
-#: order/serializers.py:839 order/serializers.py:964
+#: order/serializers.py:845 order/serializers.py:970
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:842 order/serializers.py:967
+#: order/serializers.py:848 order/serializers.py:973
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:894
+#: order/serializers.py:900
msgid "No match found for the following serial numbers"
-msgstr ""
+msgstr "Aucune correspondance trouvée pour les numéros de série suivants"
-#: order/serializers.py:904
+#: order/serializers.py:910
msgid "The following serial numbers are already allocated"
-msgstr ""
+msgstr "Les numéros de série suivants sont déjà alloués"
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
@@ -3441,6 +3530,7 @@ msgstr ""
#: order/templates/order/order_base.html:94
#: order/templates/order/sales_order_base.html:89
+#: templates/js/translated/stock.js:2327
msgid "Order Status"
msgstr "Statut de la commande"
@@ -3538,7 +3628,7 @@ msgstr "Dupliquer la sélection"
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/build.js:300 templates/js/translated/build.js:1311
#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488
-#: templates/js/translated/stock.js:593 templates/js/translated/stock.js:761
+#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769
msgid "Remove row"
msgstr "Supprimer la ligne"
@@ -3729,7 +3819,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:48
-#: templates/js/translated/bom.js:720 templates/js/translated/build.js:1243
+#: templates/js/translated/bom.js:732 templates/js/translated/build.js:1243
msgid "Actions"
msgstr ""
@@ -3832,447 +3922,448 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:125 part/models.py:81 part/models.py:847
+#: part/bom.py:125 part/models.py:83 part/models.py:849
#: part/templates/part/category.html:108 part/templates/part/part_base.html:338
msgid "Default Location"
msgstr ""
-#: part/bom.py:126 part/templates/part/part_base.html:185
+#: part/bom.py:126 templates/email/low_stock_notification.html:17
+msgid "Total Stock"
+msgstr ""
+
+#: part/bom.py:127 part/templates/part/part_base.html:185
msgid "Available Stock"
msgstr ""
-#: part/forms.py:85
+#: part/bom.py:128 part/templates/part/part_base.html:203
+#: templates/js/translated/part.js:1301
+msgid "On Order"
+msgstr ""
+
+#: part/forms.py:84
msgid "Select part category"
msgstr ""
-#: part/forms.py:122
+#: part/forms.py:121
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:126
+#: part/forms.py:125
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:146
+#: part/forms.py:145
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:82
+#: part/models.py:84
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:85
+#: part/models.py:87
msgid "Default keywords"
msgstr ""
-#: part/models.py:85
+#: part/models.py:87
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:95 part/models.py:2526 part/templates/part/category.html:15
+#: part/models.py:97 part/models.py:2533 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:96 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/stats.html:84
+#: part/models.py:98 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/stats.html:96
#: users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:358 part/templates/part/cat_link.html:3
+#: part/models.py:360 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:17 part/templates/part/category.html:133
#: part/templates/part/category.html:153
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:37
-#: templates/js/translated/part.js:1656 templates/navbar.html:21
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+#: templates/js/translated/part.js:1663 templates/navbar.html:21
+#: templates/stats.html:92 templates/stats.html:101 users/models.py:41
msgid "Parts"
msgstr ""
-#: part/models.py:450
+#: part/models.py:452
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:500 part/models.py:512
+#: part/models.py:502 part/models.py:514
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:642
+#: part/models.py:644
msgid "Next available serial numbers are"
-msgstr ""
+msgstr "Les prochains numéros de série disponibles sont"
-#: part/models.py:646
+#: part/models.py:648
msgid "Next available serial number is"
-msgstr ""
+msgstr "Le prochain numéro de série disponible est"
-#: part/models.py:651
+#: part/models.py:653
msgid "Most recent serial number is"
-msgstr ""
+msgstr "Le numéro de série le plus récent est"
-#: part/models.py:746
+#: part/models.py:748
msgid "Duplicate IPN not allowed in part settings"
msgstr "IPN dupliqué non autorisé dans les paramètres de la pièce"
-#: part/models.py:771
+#: part/models.py:773
msgid "Part name"
msgstr ""
-#: part/models.py:778
+#: part/models.py:780
msgid "Is Template"
msgstr ""
-#: part/models.py:779
+#: part/models.py:781
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:789
+#: part/models.py:791
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:790
+#: part/models.py:792
msgid "Variant Of"
msgstr ""
-#: part/models.py:796
+#: part/models.py:798
msgid "Part description"
msgstr ""
-#: part/models.py:801 part/templates/part/category.html:86
+#: part/models.py:803 part/templates/part/category.html:86
#: part/templates/part/part_base.html:302
msgid "Keywords"
msgstr ""
-#: part/models.py:802
+#: part/models.py:804
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:809 part/models.py:2276 part/models.py:2525
+#: part/models.py:811 part/models.py:2283 part/models.py:2532
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:183
-#: templates/js/translated/part.js:1261
+#: templates/InvenTree/settings/settings.html:186
+#: templates/js/translated/part.js:1268
msgid "Category"
msgstr "Catégorie"
-#: part/models.py:810
+#: part/models.py:812
msgid "Part category"
msgstr "Catégorie de la pièce"
-#: part/models.py:815 part/templates/part/part_base.html:274
-#: templates/js/translated/part.js:612 templates/js/translated/part.js:1214
-#: templates/js/translated/stock.js:1552
+#: part/models.py:817 part/templates/part/part_base.html:274
+#: templates/js/translated/part.js:618 templates/js/translated/part.js:1221
+#: templates/js/translated/stock.js:1560
msgid "IPN"
msgstr "IPN"
-#: part/models.py:816
+#: part/models.py:818
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:822
+#: part/models.py:824
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:823 part/templates/part/part_base.html:281
-#: report/models.py:200 templates/js/translated/part.js:616
+#: part/models.py:825 part/templates/part/part_base.html:281
+#: report/models.py:200 templates/js/translated/part.js:622
msgid "Revision"
msgstr "Révision"
-#: part/models.py:845
+#: part/models.py:847
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:892 part/templates/part/part_base.html:347
+#: part/models.py:894 part/templates/part/part_base.html:347
msgid "Default Supplier"
msgstr ""
-#: part/models.py:893
+#: part/models.py:895
msgid "Default supplier part"
msgstr ""
-#: part/models.py:900
+#: part/models.py:902
msgid "Default Expiry"
msgstr ""
-#: part/models.py:901
+#: part/models.py:903
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:906 part/templates/part/part_base.html:196
+#: part/models.py:908 part/templates/part/part_base.html:196
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:907
+#: part/models.py:909
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:914
+#: part/models.py:916
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:920
+#: part/models.py:922
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:926
+#: part/models.py:928
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:932
+#: part/models.py:934
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:937
+#: part/models.py:939
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:942
+#: part/models.py:944
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:946 plugin/models.py:46
-#: templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:96
-#: templates/js/translated/table_filters.js:295
-#: templates/js/translated/table_filters.js:417
-msgid "Active"
-msgstr "Actif"
-
-#: part/models.py:947
+#: part/models.py:949
msgid "Is this part active?"
msgstr ""
-#: part/models.py:952
+#: part/models.py:954
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:957
+#: part/models.py:959
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:960
+#: part/models.py:962
msgid "BOM checksum"
msgstr ""
-#: part/models.py:960
+#: part/models.py:962
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:963
+#: part/models.py:965
msgid "BOM checked by"
msgstr ""
-#: part/models.py:965
+#: part/models.py:967
msgid "BOM checked date"
msgstr ""
-#: part/models.py:969
+#: part/models.py:971
msgid "Creation User"
msgstr ""
-#: part/models.py:1781
+#: part/models.py:1783
msgid "Sell multiple"
msgstr "Ventes multiples"
-#: part/models.py:2326
+#: part/models.py:2333
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2343
+#: part/models.py:2350
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2363 templates/js/translated/part.js:1707
-#: templates/js/translated/stock.js:1276
+#: part/models.py:2370 templates/js/translated/part.js:1714
+#: templates/js/translated/stock.js:1284
msgid "Test Name"
msgstr "Nom de test"
-#: part/models.py:2364
+#: part/models.py:2371
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2376
msgid "Test Description"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2377
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2375 templates/js/translated/part.js:1716
+#: part/models.py:2382 templates/js/translated/part.js:1723
#: templates/js/translated/table_filters.js:281
msgid "Required"
msgstr "Requis"
-#: part/models.py:2376
+#: part/models.py:2383
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2381 templates/js/translated/part.js:1724
+#: part/models.py:2388 templates/js/translated/part.js:1731
msgid "Requires Value"
msgstr ""
-#: part/models.py:2382
+#: part/models.py:2389
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2387 templates/js/translated/part.js:1731
+#: part/models.py:2394 templates/js/translated/part.js:1738
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2388
+#: part/models.py:2395
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2399
+#: part/models.py:2406
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2435
+#: part/models.py:2442
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2443
+#: part/models.py:2450
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2450
+#: part/models.py:2457
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2480
+#: part/models.py:2487
msgid "Parent Part"
msgstr ""
-#: part/models.py:2482 part/models.py:2531 part/models.py:2532
-#: templates/InvenTree/settings/settings.html:178
+#: part/models.py:2489 part/models.py:2538 part/models.py:2539
+#: templates/InvenTree/settings/settings.html:181
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2484
+#: part/models.py:2491
msgid "Data"
msgstr "Données"
-#: part/models.py:2484
+#: part/models.py:2491
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2536 templates/InvenTree/settings/settings.html:187
+#: part/models.py:2543 templates/InvenTree/settings/settings.html:190
msgid "Default Value"
msgstr ""
-#: part/models.py:2537
+#: part/models.py:2544
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2614
+#: part/models.py:2621
msgid "Select parent part"
msgstr ""
-#: part/models.py:2622
+#: part/models.py:2629
msgid "Sub part"
msgstr ""
-#: part/models.py:2623
+#: part/models.py:2630
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2629
+#: part/models.py:2636
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2631 templates/js/translated/bom.js:566
-#: templates/js/translated/bom.js:640
+#: part/models.py:2638 templates/js/translated/bom.js:578
+#: templates/js/translated/bom.js:652
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2638
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2634
+#: part/models.py:2641
msgid "Overage"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2642
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2638
+#: part/models.py:2645
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2641
+#: part/models.py:2648
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2643
+#: part/models.py:2650
msgid "Checksum"
msgstr ""
-#: part/models.py:2643
+#: part/models.py:2650
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2647 templates/js/translated/bom.js:657
+#: part/models.py:2654 templates/js/translated/bom.js:669
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2648
+#: part/models.py:2655
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2653 templates/js/translated/bom.js:649
+#: part/models.py:2660 templates/js/translated/bom.js:661
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2654
+#: part/models.py:2661
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2739 stock/models.py:355
+#: part/models.py:2746 stock/models.py:357
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2748 part/models.py:2750
+#: part/models.py:2755 part/models.py:2757
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2879
+#: part/models.py:2886
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2908
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2920
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2928
msgid "Substitute part"
msgstr ""
-#: part/models.py:2932
+#: part/models.py:2939
msgid "Part 1"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2943
msgid "Part 2"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2943
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2968
+#: part/models.py:2975
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4327,7 +4418,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:253
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:270
msgid "BOM actions"
msgstr ""
@@ -4499,7 +4590,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:348
msgid "Duplicate Part"
msgstr ""
@@ -4533,145 +4624,149 @@ msgid "Showing stock for all variants of %(full_name)s"
msgstr ""
#: part/templates/part/detail.html:43
+msgid "Part Stock Allocations"
+msgstr ""
+
+#: part/templates/part/detail.html:60
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:48
+#: part/templates/part/detail.html:65
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:105
+#: part/templates/part/detail.html:122
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:142
+#: part/templates/part/detail.html:159
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:146
+#: part/templates/part/detail.html:163
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:147
+#: part/templates/part/detail.html:164
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:174
+#: part/templates/part/detail.html:191
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:45
+#: part/templates/part/detail.html:228 part/templates/part/part_sidebar.html:49
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:215 part/templates/part/detail.html:216
+#: part/templates/part/detail.html:232 part/templates/part/detail.html:233
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:236 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:253 part/templates/part/part_sidebar.html:17
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:241
+#: part/templates/part/detail.html:258
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:245 templates/js/translated/bom.js:70
+#: part/templates/part/detail.html:262 templates/js/translated/bom.js:70
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:247
+#: part/templates/part/detail.html:264
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:257
+#: part/templates/part/detail.html:274
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:259 templates/js/translated/part.js:272
+#: part/templates/part/detail.html:276 templates/js/translated/part.js:272
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:278
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:266
+#: part/templates/part/detail.html:283
msgid "New BOM Item"
msgstr ""
-#: part/templates/part/detail.html:267
+#: part/templates/part/detail.html:284
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:280
+#: part/templates/part/detail.html:297
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:297
+#: part/templates/part/detail.html:314
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:322
+#: part/templates/part/detail.html:339
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:332
+#: part/templates/part/detail.html:349
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:360
+#: part/templates/part/detail.html:377
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:393
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:558
+#: part/templates/part/detail.html:575
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:559
+#: part/templates/part/detail.html:576
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:608
+#: part/templates/part/detail.html:625
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:652
+#: part/templates/part/detail.html:682
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:660
+#: part/templates/part/detail.html:690
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:755
+#: part/templates/part/detail.html:785
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:812
+#: part/templates/part/detail.html:842
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:925
+#: part/templates/part/detail.html:955
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:937
+#: part/templates/part/detail.html:967
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:949
+#: part/templates/part/detail.html:979
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1038
+#: part/templates/part/detail.html:1068
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4767,7 +4862,7 @@ msgstr ""
#: part/templates/part/part_base.html:124
msgid "Part stock is tracked by serial number"
-msgstr ""
+msgstr "La pièce en stock est tracée par un numéro de série"
#: part/templates/part/part_base.html:128
msgid "Part can be purchased from external suppliers"
@@ -4786,7 +4881,7 @@ msgstr ""
#: templates/js/translated/company.js:508
#: templates/js/translated/company.js:765
#: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:527 templates/js/translated/part.js:604
+#: templates/js/translated/part.js:533 templates/js/translated/part.js:610
msgid "Inactive"
msgstr ""
@@ -4805,10 +4900,6 @@ msgstr ""
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1294
-msgid "On Order"
-msgstr ""
-
#: part/templates/part/part_base.html:210 templates/InvenTree/index.html:178
msgid "Required for Build Orders"
msgstr ""
@@ -4821,12 +4912,12 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:678
+#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:690
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1125
-#: templates/js/translated/part.js:1298
+#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1132
+#: templates/js/translated/part.js:1305
msgid "Building"
msgstr ""
@@ -4836,12 +4927,12 @@ msgstr ""
#: part/templates/part/part_base.html:324
msgid "Latest Serial Number"
-msgstr ""
+msgstr "Dernier numéro de série"
#: part/templates/part/part_base.html:328
#: stock/templates/stock/item_base.html:166
msgid "Search for serial number"
-msgstr ""
+msgstr "Rechercher un numéro de série"
#: part/templates/part/part_base.html:449 part/templates/part/prices.html:144
msgid "Calculate"
@@ -4878,7 +4969,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:632
+#: templates/js/translated/bom.js:644
msgid "No supplier pricing available"
msgstr ""
@@ -4920,7 +5011,12 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/templates/part/part_sidebar.html:41
+#: part/templates/part/part_sidebar.html:31
+#: stock/templates/stock/stock_sidebar.html:8
+msgid "Allocations"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:45
msgid "Test Templates"
msgstr "Tester le modèle"
@@ -4993,7 +5089,7 @@ msgstr "Afficher le prix de vente"
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:626
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:638
msgid "Supplier Cost"
msgstr ""
@@ -5015,7 +5111,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1690
+#: part/templates/part/prices.html:215 part/views.py:1699
msgid "Add Internal Price Break"
msgstr ""
@@ -5035,9 +5131,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:588
-#: templates/js/translated/part.js:491 templates/js/translated/part.js:1115
-#: templates/js/translated/part.js:1302
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:600
+#: templates/js/translated/part.js:497 templates/js/translated/part.js:1122
+#: templates/js/translated/part.js:1309
msgid "No Stock"
msgstr ""
@@ -5054,116 +5150,116 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:116
+#: part/templatetags/inventree_extras.py:125
msgid "Unknown database"
msgstr ""
-#: part/views.py:92
+#: part/views.py:93
msgid "Set Part Category"
msgstr ""
-#: part/views.py:142
+#: part/views.py:143
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:214
+#: part/views.py:215
msgid "Match References"
msgstr ""
-#: part/views.py:502
+#: part/views.py:511
msgid "None"
msgstr ""
-#: part/views.py:561
+#: part/views.py:570
msgid "Part QR Code"
msgstr ""
-#: part/views.py:663
+#: part/views.py:672
msgid "Select Part Image"
msgstr ""
-#: part/views.py:689
+#: part/views.py:698
msgid "Updated part image"
msgstr ""
-#: part/views.py:692
+#: part/views.py:701
msgid "Part image not found"
msgstr ""
-#: part/views.py:766
+#: part/views.py:775
msgid "Match Parts"
msgstr ""
-#: part/views.py:1101
+#: part/views.py:1110
msgid "Export Bill of Materials"
msgstr ""
-#: part/views.py:1150
+#: part/views.py:1159
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1157
+#: part/views.py:1166
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1166
+#: part/views.py:1175
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1315
+#: part/views.py:1324
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1325
+#: part/views.py:1334
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1332
+#: part/views.py:1341
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1391 templates/js/translated/part.js:315
+#: part/views.py:1400 templates/js/translated/part.js:315
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1429
+#: part/views.py:1438
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1435
+#: part/views.py:1444
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1444
+#: part/views.py:1453
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1545
+#: part/views.py:1554
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1601
+#: part/views.py:1610
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1623
+#: part/views.py:1632
msgid "Added new price break"
msgstr ""
-#: part/views.py:1699
+#: part/views.py:1708
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1707
+#: part/views.py:1716
msgid "Delete Internal Price Break"
msgstr ""
-#: plugin/integration.py:124
+#: plugin/integration.py:138
msgid "No author found"
msgstr ""
-#: plugin/integration.py:136
+#: plugin/integration.py:152
msgid "No date found"
msgstr ""
@@ -5191,7 +5287,7 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:195
+#: plugin/models.py:199
msgid "Plugin"
msgstr ""
@@ -5357,33 +5453,33 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:517 stock/templates/stock/item_base.html:156
+#: stock/models.py:519 stock/templates/stock/item_base.html:156
#: templates/js/translated/build.js:293 templates/js/translated/build.js:697
#: templates/js/translated/build.js:1073
#: templates/js/translated/model_renderers.js:95
#: templates/js/translated/order.js:99 templates/js/translated/order.js:1945
-#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:415
+#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:423
msgid "Serial Number"
-msgstr ""
+msgstr "Numéro de série"
#: report/templates/report/inventree_test_report_base.html:88
msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:1948
+#: stock/models.py:1976
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:1954
+#: stock/models.py:1982
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:49
+#: templates/InvenTree/settings/plugin.html:50
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2367
+#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2525
msgid "Date"
msgstr ""
@@ -5396,23 +5492,27 @@ msgid "Fail"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:123
-#: stock/templates/stock/stock_sidebar.html:12
+#: stock/templates/stock/stock_sidebar.html:16
msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:578 templates/js/translated/stock.js:748
-#: templates/js/translated/stock.js:2627
+#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756
+#: templates/js/translated/stock.js:2785
msgid "Serial"
msgstr ""
-#: stock/api.py:478
+#: stock/api.py:476
msgid "Quantity is required"
msgstr ""
-#: stock/forms.py:77 stock/forms.py:251 stock/models.py:574
+#: stock/api.py:483
+msgid "Valid part must be supplied"
+msgstr ""
+
+#: stock/forms.py:77 stock/forms.py:251 stock/models.py:576
#: stock/templates/stock/item_base.html:193
-#: templates/js/translated/stock.js:1701
+#: templates/js/translated/stock.js:1709
msgid "Expiry Date"
msgstr ""
@@ -5422,7 +5522,7 @@ msgstr ""
#: stock/forms.py:81
msgid "Enter unique serial numbers (or leave blank)"
-msgstr ""
+msgstr "Entrer des numéros de série uniques (ou laisser vide)"
#: stock/forms.py:136
msgid "Destination for serialized stock (by default, will remain in current location)"
@@ -5430,11 +5530,11 @@ msgstr ""
#: stock/forms.py:138
msgid "Serial numbers"
-msgstr ""
+msgstr "Numéros de série"
#: stock/forms.py:138
msgid "Unique serial numbers (must match quantity)"
-msgstr ""
+msgstr "Numéros de série uniques (doivent correspondre à la quantité)"
#: stock/forms.py:140 stock/forms.py:224
msgid "Add transaction note (optional)"
@@ -5460,228 +5560,228 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:60 stock/models.py:611
+#: stock/models.py:62 stock/models.py:613
#: stock/templates/stock/item_base.html:416
msgid "Owner"
msgstr "Propriétaire"
-#: stock/models.py:61 stock/models.py:612
+#: stock/models.py:63 stock/models.py:614
msgid "Select Owner"
msgstr "Sélectionner un propriétaire"
-#: stock/models.py:336
+#: stock/models.py:338
msgid "StockItem with this serial number already exists"
-msgstr ""
+msgstr "Il existe déjà un article en stock avec ce numéro de série"
-#: stock/models.py:372
+#: stock/models.py:374
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:382 stock/models.py:391
+#: stock/models.py:384 stock/models.py:393
msgid "Quantity must be 1 for item with a serial number"
-msgstr ""
+msgstr "La quantité doit être de 1 pour un article avec un numéro de série"
-#: stock/models.py:383
+#: stock/models.py:385
msgid "Serial number cannot be set if quantity greater than 1"
-msgstr ""
+msgstr "Le numéro de série ne peut pas être défini si la quantité est supérieure à 1"
-#: stock/models.py:405
+#: stock/models.py:407
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:413
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:418
+#: stock/models.py:420
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:461
+#: stock/models.py:463
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:470
+#: stock/models.py:472
msgid "Base part"
msgstr ""
-#: stock/models.py:478
+#: stock/models.py:480
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:484 stock/templates/stock/location.html:16
+#: stock/models.py:486 stock/templates/stock/location.html:16
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:487
+#: stock/models.py:489
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:494
+#: stock/models.py:496
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:500 stock/templates/stock/item_base.html:298
+#: stock/models.py:502 stock/templates/stock/item_base.html:298
msgid "Installed In"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:505
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:521
msgid "Serial number for this item"
-msgstr ""
+msgstr "Numéro de série pour cet article"
-#: stock/models.py:533
+#: stock/models.py:535
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:537
+#: stock/models.py:539
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:546
+#: stock/models.py:548
msgid "Source Build"
msgstr ""
-#: stock/models.py:548
+#: stock/models.py:550
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:559
+#: stock/models.py:561
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:562
+#: stock/models.py:564
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:568
+#: stock/models.py:570
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:575
+#: stock/models.py:577
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:588
+#: stock/models.py:590
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:588
+#: stock/models.py:590
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:598 stock/templates/stock/item.html:111
+#: stock/models.py:600 stock/templates/stock/item.html:128
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:607
+#: stock/models.py:609
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1068
+#: stock/models.py:1096
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1074
+#: stock/models.py:1102
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1080
+#: stock/models.py:1108
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1083
+#: stock/models.py:1111
msgid "Serial numbers must be a list of integers"
-msgstr ""
+msgstr "Les numéros de série doivent être une liste de nombres entiers"
-#: stock/models.py:1086
+#: stock/models.py:1114
msgid "Quantity does not match serial numbers"
-msgstr ""
+msgstr "La quantité ne correspond pas au nombre de numéros de série"
-#: stock/models.py:1093
+#: stock/models.py:1121
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
-msgstr ""
+msgstr "Les numéros de série existent déja : {exists}"
-#: stock/models.py:1164
+#: stock/models.py:1192
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1167
+#: stock/models.py:1195
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1170
+#: stock/models.py:1198
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1173
+#: stock/models.py:1201
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1176
+#: stock/models.py:1204
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1179
+#: stock/models.py:1207
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1186 stock/serializers.py:774
+#: stock/models.py:1214 stock/serializers.py:775
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1190
+#: stock/models.py:1218
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1194
+#: stock/models.py:1222
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1198
+#: stock/models.py:1226
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1369
+#: stock/models.py:1397
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1868
+#: stock/models.py:1896
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1925
+#: stock/models.py:1953
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1931
+#: stock/models.py:1959
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1949
+#: stock/models.py:1977
msgid "Test name"
msgstr ""
-#: stock/models.py:1955 templates/js/translated/table_filters.js:271
+#: stock/models.py:1983 templates/js/translated/table_filters.js:271
msgid "Test result"
msgstr ""
-#: stock/models.py:1961
+#: stock/models.py:1989
msgid "Test output value"
msgstr ""
-#: stock/models.py:1968
+#: stock/models.py:1996
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1974
+#: stock/models.py:2002
msgid "Test notes"
msgstr ""
@@ -5695,7 +5795,7 @@ msgstr ""
#: stock/serializers.py:294
msgid "Enter number of stock items to serialize"
-msgstr ""
+msgstr "Entrez le nombre d'articles en stock à sérialiser"
#: stock/serializers.py:309
#, python-brace-format
@@ -5704,9 +5804,9 @@ msgstr ""
#: stock/serializers.py:315
msgid "Enter serial numbers for new items"
-msgstr ""
+msgstr "Entrez les numéros de série pour les nouveaux articles"
-#: stock/serializers.py:326 stock/serializers.py:731 stock/serializers.py:972
+#: stock/serializers.py:326 stock/serializers.py:732 stock/serializers.py:973
msgid "Destination stock location"
msgstr ""
@@ -5716,65 +5816,65 @@ msgstr ""
#: stock/serializers.py:346
msgid "Serial numbers cannot be assigned to this part"
-msgstr ""
+msgstr "Les numéros de série ne peuvent pas être assignés à cette pièce"
-#: stock/serializers.py:588
+#: stock/serializers.py:589
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:592
+#: stock/serializers.py:593
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:597
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:626
+#: stock/serializers.py:627
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:632
+#: stock/serializers.py:633
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:640
+#: stock/serializers.py:641
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:650 stock/serializers.py:880
+#: stock/serializers.py:651 stock/serializers.py:881
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:738
+#: stock/serializers.py:739
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:743
+#: stock/serializers.py:744
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:744
+#: stock/serializers.py:745
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:749
+#: stock/serializers.py:750
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:750
+#: stock/serializers.py:751
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:760
+#: stock/serializers.py:761
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:842
+#: stock/serializers.py:843
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:870
+#: stock/serializers.py:871
msgid "Stock transaction notes"
msgstr ""
@@ -5787,47 +5887,51 @@ msgid "New Entry"
msgstr ""
#: stock/templates/stock/item.html:48
-msgid "Child Stock Items"
-msgstr ""
-
-#: stock/templates/stock/item.html:55
-msgid "This stock item does not have any child items"
+msgid "Stock Item Allocations"
msgstr ""
#: stock/templates/stock/item.html:64
-#: stock/templates/stock/stock_sidebar.html:8
-msgid "Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:57
-msgid "Test Report"
+msgid "Child Stock Items"
msgstr ""
#: stock/templates/stock/item.html:72
+msgid "This stock item does not have any child items"
+msgstr ""
+
+#: stock/templates/stock/item.html:81
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:57
+msgid "Test Report"
+msgstr ""
+
+#: stock/templates/stock/item.html:89
msgid "Delete Test Data"
msgstr ""
-#: stock/templates/stock/item.html:76
+#: stock/templates/stock/item.html:93
msgid "Add Test Data"
msgstr ""
-#: stock/templates/stock/item.html:133
+#: stock/templates/stock/item.html:150
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:137 stock/views.py:482
+#: stock/templates/stock/item.html:154 stock/views.py:482
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304
+#: stock/templates/stock/item.html:309 stock/templates/stock/item.html:334
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:324
+#: stock/templates/stock/item.html:354
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:338
+#: stock/templates/stock/item.html:368
msgid "Delete Test Result"
msgstr ""
@@ -5921,7 +6025,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:161
msgid "Navigate to previous serial number"
-msgstr ""
+msgstr "Accéder au numéro de série précédent"
#: stock/templates/stock/item_base.html:170
msgid "next page"
@@ -5929,7 +6033,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:170
msgid "Navigate to next serial number"
-msgstr ""
+msgstr "Accéder au numéro de série suivant"
#: stock/templates/stock/item_base.html:197
#, python-format
@@ -5952,7 +6056,7 @@ msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:206
-#: templates/js/translated/stock.js:1714
+#: templates/js/translated/stock.js:1722
msgid "Last Updated"
msgstr ""
@@ -5990,7 +6094,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:276
msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
-msgstr ""
+msgstr "Cet article de stock est sérialisé - il a un numéro de série unique et la quantité ne peut pas être ajustée."
#: stock/templates/stock/item_base.html:317
#: templates/js/translated/build.js:1095
@@ -6065,7 +6169,7 @@ msgstr ""
#: stock/templates/stock/item_serialize.html:7
msgid "Select quantity to serialize, and unique serial numbers."
-msgstr ""
+msgstr "Sélectionner la quantité à sérialiser et les numéros de série uniques."
#: stock/templates/stock/location.html:37
msgid "Check-in Items"
@@ -6111,7 +6215,7 @@ msgid "Sublocations"
msgstr ""
#: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164
-#: templates/stats.html:97 users/models.py:42
+#: templates/stats.html:109 users/models.py:42
msgid "Stock Locations"
msgstr ""
@@ -6135,7 +6239,7 @@ msgstr ""
msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/stock_sidebar.html:16
+#: stock/templates/stock/stock_sidebar.html:20
msgid "Child Items"
msgstr ""
@@ -6164,7 +6268,7 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:162
+#: stock/views.py:162 templates/js/translated/stock.js:139
msgid "Edit Stock Location"
msgstr ""
@@ -6204,7 +6308,7 @@ msgstr ""
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:727 templates/js/translated/stock.js:1066
+#: stock/views.py:727 templates/js/translated/stock.js:1074
msgid "Confirm stock adjustment"
msgstr ""
@@ -6212,7 +6316,7 @@ msgstr ""
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:324
+#: stock/views.py:760 templates/js/translated/stock.js:332
msgid "Edit Stock Item"
msgstr ""
@@ -6224,7 +6328,7 @@ msgstr ""
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1153 templates/js/translated/stock.js:304
+#: stock/views.py:1153 templates/js/translated/stock.js:312
msgid "Duplicate Stock Item"
msgstr ""
@@ -6268,6 +6372,18 @@ msgstr ""
msgid "The requested page does not exist"
msgstr ""
+#: templates/500.html:5 templates/500.html:11
+msgid "Internal Server Error"
+msgstr ""
+
+#: templates/500.html:14
+msgid "The InvenTree server raised an internal error"
+msgstr ""
+
+#: templates/500.html:15
+msgid "Refer to the error log in the admin interface for further details"
+msgstr ""
+
#: templates/503.html:10 templates/503.html:35
msgid "Site is in Maintenance"
msgstr ""
@@ -6390,7 +6506,7 @@ msgid "Signup"
msgstr ""
#: templates/InvenTree/settings/mixins/settings.html:5
-#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:118
+#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113
msgid "Settings"
msgstr ""
@@ -6431,112 +6547,112 @@ msgstr ""
msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage."
msgstr ""
-#: templates/InvenTree/settings/plugin.html:32
+#: templates/InvenTree/settings/plugin.html:33
msgid "Plugins"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:37
+#: templates/InvenTree/settings/plugin.html:38
#: templates/js/translated/plugin.js:15
msgid "Install Plugin"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:46 templates/navbar.html:111
+#: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111
#: users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin.html:49
#: templates/InvenTree/settings/plugin_settings.html:28
msgid "Author"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:50
+#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin_settings.html:43
msgid "Version"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:91
+#: templates/InvenTree/settings/plugin.html:92
msgid "Inactive plugins"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:114
+#: templates/InvenTree/settings/plugin.html:115
msgid "Plugin Error Stack"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:123
+#: templates/InvenTree/settings/plugin.html:124
msgid "Stage"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:125
+#: templates/InvenTree/settings/plugin.html:126
msgid "Message"
msgstr ""
#: templates/InvenTree/settings/plugin_settings.html:10
#, python-format
msgid "Plugin details for %(name)s"
-msgstr ""
+msgstr "Détails du plugin %(name)s"
#: templates/InvenTree/settings/plugin_settings.html:17
msgid "Plugin information"
-msgstr ""
+msgstr "Informations sur le plugin"
#: templates/InvenTree/settings/plugin_settings.html:48
msgid "no version information supplied"
-msgstr ""
+msgstr "aucune information de version fournie"
#: templates/InvenTree/settings/plugin_settings.html:62
msgid "License"
-msgstr ""
+msgstr "License"
#: templates/InvenTree/settings/plugin_settings.html:71
msgid "The code information is pulled from the latest git commit for this plugin. It might not reflect official version numbers or information but the actual code running."
-msgstr ""
+msgstr "Les informations de code sont tirées de la dernière version de git pour ce plugin. Elles peuvent ne pas refléter les informations ou numéros de version officiels, mais elles se rapportent au code réellement en cours d'exécution."
#: templates/InvenTree/settings/plugin_settings.html:77
msgid "Package information"
-msgstr ""
+msgstr "Informations du paquet"
#: templates/InvenTree/settings/plugin_settings.html:83
msgid "Installation method"
-msgstr ""
+msgstr "Méthode d'installation"
#: templates/InvenTree/settings/plugin_settings.html:86
msgid "This plugin was installed as a package"
-msgstr ""
+msgstr "Ce plugin a été installé en tant que paquet"
#: templates/InvenTree/settings/plugin_settings.html:88
msgid "This plugin was found in a local InvenTree path"
-msgstr ""
+msgstr "Ce plugin a été trouvé dans un chemin local d'InvenTree"
#: templates/InvenTree/settings/plugin_settings.html:94
msgid "Installation path"
-msgstr ""
+msgstr "Chemin d'installation"
#: templates/InvenTree/settings/plugin_settings.html:100
msgid "Commit Author"
-msgstr ""
+msgstr "Auteur du commit"
#: templates/InvenTree/settings/plugin_settings.html:104
#: templates/about.html:47
msgid "Commit Date"
-msgstr ""
+msgstr "Date du commit"
#: templates/InvenTree/settings/plugin_settings.html:108
#: templates/about.html:40
msgid "Commit Hash"
-msgstr ""
+msgstr "Hash du commit"
#: templates/InvenTree/settings/plugin_settings.html:112
msgid "Commit Message"
-msgstr ""
+msgstr "Message du commit"
#: templates/InvenTree/settings/plugin_settings.html:117
msgid "Sign Status"
-msgstr ""
+msgstr "Statut de la signature"
#: templates/InvenTree/settings/plugin_settings.html:122
msgid "Sign Key"
-msgstr ""
+msgstr "Clé de signature"
#: templates/InvenTree/settings/po.html:7
msgid "Purchase Order Settings"
@@ -6555,37 +6671,37 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:75
+#: templates/InvenTree/settings/settings.html:78
msgid "Edit Plugin Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:77
+#: templates/InvenTree/settings/settings.html:80
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:79
+#: templates/InvenTree/settings/settings.html:82
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:168
+#: templates/InvenTree/settings/settings.html:171
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:190
-#: templates/InvenTree/settings/settings.html:289
+#: templates/InvenTree/settings/settings.html:193
+#: templates/InvenTree/settings/settings.html:292
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:191
-#: templates/InvenTree/settings/settings.html:290
+#: templates/InvenTree/settings/settings.html:194
+#: templates/InvenTree/settings/settings.html:293
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:269
+#: templates/InvenTree/settings/settings.html:272
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:273
+#: templates/InvenTree/settings/settings.html:276
msgid "ID"
msgstr ""
@@ -6763,124 +6879,105 @@ msgstr ""
msgid "Remove multifactor"
msgstr ""
-#: templates/InvenTree/settings/user.html:219
+#: templates/InvenTree/settings/user.html:220
+msgid "Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:226
+msgid "Log out active sessions (except this one)"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:227
+msgid "Log Out Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:236
+msgid "unknown on unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:237
+msgid "unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:241
+msgid "IP Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:242
+msgid "Device"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:243
+msgid "Last Activity"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:252
+#, python-format
+msgid "%(time)s ago (this session)"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:254
+#, python-format
+msgid "%(time)s ago"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:266
+msgid "Do you really want to remove the selected email address?"
+msgstr ""
+
#: templates/InvenTree/settings/user_display.html:25
msgid "Theme Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:227
#: templates/InvenTree/settings/user_display.html:35
msgid "Select theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:237
#: templates/InvenTree/settings/user_display.html:46
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:246
#: templates/InvenTree/settings/user_display.html:54
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:254
#: templates/InvenTree/settings/user_display.html:63
msgid "Select language"
msgstr ""
-#: templates/InvenTree/settings/user.html:270
#: templates/InvenTree/settings/user_display.html:79
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:272
#: templates/InvenTree/settings/user_display.html:81
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:279
#: templates/InvenTree/settings/user_display.html:88
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:281
#: templates/InvenTree/settings/user_display.html:91
msgid "Some languages are not complete"
msgstr ""
-#: templates/InvenTree/settings/user.html:283
#: templates/InvenTree/settings/user_display.html:93
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user.html:285
+#: templates/InvenTree/settings/user_display.html:95
+msgid "and hidden."
+msgstr ""
+
#: templates/InvenTree/settings/user_display.html:95
msgid "Show them too"
msgstr ""
-#: templates/InvenTree/settings/user.html:292
#: templates/InvenTree/settings/user_display.html:101
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user.html:293
-#, python-format
-msgid "Native language translation of the\n"
-" InvenTree web application is community contributed via crowdin. Contributions are\n"
-" welcomed and encouraged."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:302
-msgid "Active Sessions"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:308
-msgid "Log out active sessions (except this one)"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:309
-msgid "Log Out Active Sessions"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:318
-msgid "unknown on unknown"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:319
-msgid "unknown"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:323
-msgid "IP Address"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:324
-msgid "Device"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:325
-msgid "Last Activity"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:334
-#, python-format
-msgid "%(time)s ago (this session)"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:336
-#, python-format
-msgid "%(time)s ago"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:348
-msgid "Do you really want to remove the selected email address?"
-msgstr ""
-
-#: templates/InvenTree/settings/user_display.html:95
-msgid "and hidden."
-msgstr ""
-
#: templates/InvenTree/settings/user_display.html:102
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
@@ -6899,9 +6996,9 @@ msgid "InvenTree Version Information"
msgstr ""
#: templates/about.html:11 templates/about.html:105
-#: templates/js/translated/bom.js:395 templates/js/translated/modals.js:53
-#: templates/js/translated/modals.js:573 templates/js/translated/modals.js:667
-#: templates/js/translated/modals.js:970 templates/modals.html:15
+#: templates/js/translated/bom.js:407 templates/js/translated/modals.js:53
+#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
+#: templates/js/translated/modals.js:983 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -7122,27 +7219,27 @@ msgstr ""
#: templates/allauth_2fa/setup.html:10
msgid "Step 1"
-msgstr ""
+msgstr "Étape 1"
#: templates/allauth_2fa/setup.html:14
msgid "Scan the QR code below with a token generator of your choice (for instance Google Authenticator)."
-msgstr ""
+msgstr "Scanner le QR code ci-dessous avec un générateur de token de votre choix (par exemple Google Authenticator)."
#: templates/allauth_2fa/setup.html:23
msgid "Step 2"
-msgstr ""
+msgstr "Étape 2"
#: templates/allauth_2fa/setup.html:27
msgid "Input a token generated by the app:"
-msgstr ""
+msgstr "Entrer un token généré par l'application :"
#: templates/allauth_2fa/setup.html:35
msgid "Verify"
-msgstr ""
+msgstr "Vérifier"
#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54
msgid "Add Link"
-msgstr ""
+msgstr "Ajouter un lien"
#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36
msgid "Add Attachment"
@@ -7150,19 +7247,19 @@ msgstr "Ajouter une pièce jointe"
#: templates/base.html:97
msgid "Server Restart Required"
-msgstr ""
+msgstr "Redémarrage du serveur nécessaire"
#: templates/base.html:100
msgid "A configuration option has been changed which requires a server restart"
-msgstr ""
+msgstr "Une option de configuration a été modifiée, ce qui nécessite un redémarrage du serveur"
#: templates/base.html:100
msgid "Contact your system administrator for further information"
-msgstr ""
+msgstr "Contactez votre administrateur système pour plus d'informations"
#: templates/email/build_order_required_stock.html:7
msgid "Stock is required for the following build order"
-msgstr ""
+msgstr "Du stock est requis pour la commande de construction suivante"
#: templates/email/build_order_required_stock.html:8
#, python-format
@@ -7178,13 +7275,13 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1103
+#: templates/js/translated/bom.js:1117
msgid "Required Quantity"
msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:579 templates/js/translated/build.js:1189
+#: templates/js/translated/bom.js:591 templates/js/translated/build.js:1189
#: templates/js/translated/build.js:1810
#: templates/js/translated/table_filters.js:178
msgid "Available"
@@ -7208,10 +7305,6 @@ msgstr ""
msgid "Click on the following link to view this part"
msgstr ""
-#: templates/email/low_stock_notification.html:17
-msgid "Total Stock"
-msgstr ""
-
#: templates/email/low_stock_notification.html:19
msgid "Minimum Quantity"
msgstr ""
@@ -7222,83 +7315,83 @@ msgstr ""
#: templates/image_download.html:11
msgid "Must be a valid image URL"
-msgstr ""
+msgstr "Doit être une URL d'image valide"
#: templates/image_download.html:12
msgid "Remote server must be accessible"
-msgstr ""
+msgstr "Le serveur distant doit être accessible"
#: templates/image_download.html:13
msgid "Remote image must not exceed maximum allowable file size"
-msgstr ""
+msgstr "L'image distante ne doit pas excéder la taille maximale autorisée de fichier"
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1040
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1053
msgid "No Response"
-msgstr ""
+msgstr "Aucune réponse"
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1041
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1054
msgid "No response from the InvenTree server"
-msgstr ""
+msgstr "Aucune réponse du serveur InvenTree"
#: templates/js/translated/api.js:192
msgid "Error 400: Bad request"
-msgstr ""
+msgstr "Erreur 400: Mauvaise requête"
#: templates/js/translated/api.js:193
msgid "API request returned error code 400"
-msgstr ""
+msgstr "La requête de l'API a retourné le code d'erreur 400"
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1063
msgid "Error 401: Not Authenticated"
-msgstr ""
+msgstr "Erreur 401: non authentifié"
-#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1051
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1064
msgid "Authentication credentials not supplied"
-msgstr ""
+msgstr "Informations d’authentification non fournies"
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1068
msgid "Error 403: Permission Denied"
-msgstr ""
+msgstr "Erreur 403: Permission refusée"
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1056
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1069
msgid "You do not have the required permissions to access this function"
-msgstr ""
+msgstr "Vous n'avez pas les autorisations requises pour accéder à cette fonction"
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1073
msgid "Error 404: Resource Not Found"
-msgstr ""
+msgstr "Erreur 404: Ressource introuvable"
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1061
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1074
msgid "The requested resource could not be located on the server"
-msgstr ""
+msgstr "La ressource demandée n'a pas pu être trouvée sur le serveur"
#: templates/js/translated/api.js:212
msgid "Error 405: Method Not Allowed"
-msgstr ""
+msgstr "Erreur 405: Méthode non autorisée"
#: templates/js/translated/api.js:213
msgid "HTTP method not allowed at URL"
-msgstr ""
+msgstr "Méthode HTTP non autorisée à l'adresse URL"
-#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1065
+#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1078
msgid "Error 408: Timeout"
-msgstr ""
+msgstr "Erreur 408: Délai dépassé"
-#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1079
msgid "Connection timeout while requesting data from server"
-msgstr ""
+msgstr "Délai de connexion dépassé lors de la demande de données depuis le serveur"
#: templates/js/translated/api.js:221
msgid "Unhandled Error Code"
-msgstr ""
+msgstr "Code d'erreur non géré"
#: templates/js/translated/api.js:222
msgid "Error code"
-msgstr ""
+msgstr "Code d’erreur"
#: templates/js/translated/attachment.js:78
msgid "No attachments found"
-msgstr ""
+msgstr "Aucune pièce jointe trouvée"
#: templates/js/translated/attachment.js:100
msgid "Edit Attachment"
@@ -7306,88 +7399,88 @@ msgstr "Modifier la pièce jointe"
#: templates/js/translated/attachment.js:110
msgid "Confirm Delete"
-msgstr ""
+msgstr "Confirmer la suppression"
#: templates/js/translated/attachment.js:111
msgid "Delete Attachment"
-msgstr ""
+msgstr "Supprimer la pièce jointe"
#: templates/js/translated/attachment.js:167
msgid "Upload Date"
-msgstr ""
+msgstr "Date d'upload"
#: templates/js/translated/attachment.js:180
msgid "Edit attachment"
-msgstr ""
+msgstr "Modifier la pièce jointe"
#: templates/js/translated/attachment.js:187
msgid "Delete attachment"
-msgstr ""
+msgstr "Supprimer la pièce jointe"
#: templates/js/translated/barcode.js:29
msgid "Scan barcode data here using wedge scanner"
-msgstr ""
+msgstr "Scannez les données du code-barres ici en utilisant un wedge scanner"
#: templates/js/translated/barcode.js:31
msgid "Enter barcode data"
-msgstr ""
+msgstr "Saisir les données du code-barres"
#: templates/js/translated/barcode.js:35
msgid "Barcode"
-msgstr ""
+msgstr "Code-barres"
#: templates/js/translated/barcode.js:53
msgid "Enter optional notes for stock transfer"
-msgstr ""
+msgstr "Saisir les notes optionnelles pour le transfert de stock"
#: templates/js/translated/barcode.js:54
msgid "Enter notes"
-msgstr ""
+msgstr "Saisir des notes"
#: templates/js/translated/barcode.js:92
msgid "Server error"
-msgstr ""
+msgstr "Erreur serveur"
#: templates/js/translated/barcode.js:113
msgid "Unknown response from server"
-msgstr ""
+msgstr "Réponse inconnue du serveur"
#: templates/js/translated/barcode.js:140
-#: templates/js/translated/modals.js:1030
+#: templates/js/translated/modals.js:1043
msgid "Invalid server response"
-msgstr ""
+msgstr "Réponse du serveur invalide"
#: templates/js/translated/barcode.js:233
msgid "Scan barcode data below"
-msgstr ""
+msgstr "Scanner les données du code-barres ci-dessous"
#: templates/js/translated/barcode.js:280 templates/navbar.html:94
msgid "Scan Barcode"
-msgstr ""
+msgstr "Scanner le code-barres"
#: templates/js/translated/barcode.js:291
msgid "No URL in response"
-msgstr ""
+msgstr "Aucune URL dans la réponse"
#: templates/js/translated/barcode.js:309
msgid "Link Barcode to Stock Item"
-msgstr ""
+msgstr "Lier le code-barres à l'article de stock"
#: templates/js/translated/barcode.js:332
msgid "This will remove the association between this stock item and the barcode"
-msgstr ""
+msgstr "Ceci supprimera l'association entre cet article de stock et le code-barres"
#: templates/js/translated/barcode.js:338
msgid "Unlink"
-msgstr ""
+msgstr "Délier"
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1018
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026
msgid "Remove stock item"
-msgstr ""
+msgstr "Supprimer l'article de stock"
#: templates/js/translated/barcode.js:439
msgid "Check Stock Items into Location"
-msgstr ""
+msgstr "Vérifier les articles de stock dans l'emplacement"
#: templates/js/translated/barcode.js:443
#: templates/js/translated/barcode.js:573
@@ -7397,53 +7490,53 @@ msgstr ""
#: templates/js/translated/barcode.js:485
#: templates/js/translated/barcode.js:612
msgid "Error transferring stock"
-msgstr ""
+msgstr "Erreur lors du transfert de stock"
#: templates/js/translated/barcode.js:507
msgid "Stock Item already scanned"
-msgstr ""
+msgstr "Article de stock déjà scanné"
#: templates/js/translated/barcode.js:511
msgid "Stock Item already in this location"
-msgstr ""
+msgstr "Article de stock déjà à cet emplacement"
#: templates/js/translated/barcode.js:518
msgid "Added stock item"
-msgstr ""
+msgstr "Article de stock ajouté"
#: templates/js/translated/barcode.js:525
msgid "Barcode does not match Stock Item"
-msgstr ""
+msgstr "Le code-barres ne correspond pas à l'article de stock"
#: templates/js/translated/barcode.js:568
msgid "Check Into Location"
-msgstr ""
+msgstr "Vérifier dans l'emplacement"
#: templates/js/translated/barcode.js:633
msgid "Barcode does not match a valid location"
-msgstr ""
+msgstr "Le code-barres ne correspond pas à un emplacement valide"
#: templates/js/translated/bom.js:36
msgid "Download BOM Template"
-msgstr ""
+msgstr "Télécharger le template de la BOM"
#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73
-#: templates/js/translated/order.js:369 templates/js/translated/stock.js:510
+#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74
-#: templates/js/translated/order.js:370 templates/js/translated/stock.js:511
+#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519
msgid "Select file format"
-msgstr ""
+msgstr "Sélectionner un format de fichier"
#: templates/js/translated/bom.js:81
msgid "Cascading"
-msgstr ""
+msgstr "En cascade"
#: templates/js/translated/bom.js:82
msgid "Download cascading / multi-level BOM"
-msgstr ""
+msgstr "Télécharger la BOM en cascade / à plusieurs niveaux"
#: templates/js/translated/bom.js:87
msgid "Levels"
@@ -7451,19 +7544,19 @@ msgstr "Niveaux"
#: templates/js/translated/bom.js:88
msgid "Select maximum number of BOM levels to export (0 = all levels)"
-msgstr ""
+msgstr "Sélectionner le nombre maximum de niveaux de BOM à exporter (0 = tous les niveaux)"
#: templates/js/translated/bom.js:94
msgid "Include Parameter Data"
-msgstr ""
+msgstr "Inclure les données de paramètre"
#: templates/js/translated/bom.js:95
msgid "Include part parameter data in exported BOM"
-msgstr ""
+msgstr "Inclure les données de paramètre de la pièce dans la BOM exporté"
#: templates/js/translated/bom.js:100
msgid "Include Stock Data"
-msgstr ""
+msgstr "Inclure les données de stock"
#: templates/js/translated/bom.js:101
msgid "Include part stock data in exported BOM"
@@ -7489,87 +7582,87 @@ msgstr ""
msgid "Remove substitute part"
msgstr ""
-#: templates/js/translated/bom.js:340
-msgid "Select and add a new variant item using the input below"
+#: templates/js/translated/bom.js:352
+msgid "Select and add a new substitute part using the input below"
msgstr ""
-#: templates/js/translated/bom.js:351
+#: templates/js/translated/bom.js:363
msgid "Are you sure you wish to remove this substitute part link?"
msgstr ""
-#: templates/js/translated/bom.js:357
+#: templates/js/translated/bom.js:369
msgid "Remove Substitute Part"
msgstr ""
-#: templates/js/translated/bom.js:396
+#: templates/js/translated/bom.js:408
msgid "Add Substitute"
msgstr ""
-#: templates/js/translated/bom.js:397
+#: templates/js/translated/bom.js:409
msgid "Edit BOM Item Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:516
+#: templates/js/translated/bom.js:528
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:520 templates/js/translated/build.js:1171
+#: templates/js/translated/bom.js:532 templates/js/translated/build.js:1171
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:525
+#: templates/js/translated/bom.js:537
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:597
+#: templates/js/translated/bom.js:609
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:612
+#: templates/js/translated/bom.js:624
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:619
+#: templates/js/translated/bom.js:631
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:668 templates/js/translated/bom.js:757
+#: templates/js/translated/bom.js:680 templates/js/translated/bom.js:769
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:728
+#: templates/js/translated/bom.js:740
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:730
+#: templates/js/translated/bom.js:742
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:732
+#: templates/js/translated/bom.js:744
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:734 templates/js/translated/bom.js:908
+#: templates/js/translated/bom.js:746 templates/js/translated/bom.js:920
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:736 templates/js/translated/bom.js:891
+#: templates/js/translated/bom.js:748 templates/js/translated/bom.js:903
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:830 templates/js/translated/build.js:915
+#: templates/js/translated/bom.js:842 templates/js/translated/build.js:915
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:886
+#: templates/js/translated/bom.js:898
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:1086 templates/js/translated/build.js:1155
+#: templates/js/translated/bom.js:1100 templates/js/translated/build.js:1155
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1108
+#: templates/js/translated/bom.js:1122
msgid "Inherited from parent BOM"
msgstr ""
@@ -7725,9 +7818,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1206
-#: templates/js/translated/part.js:1617 templates/js/translated/stock.js:1512
-#: templates/js/translated/stock.js:2321
+#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1213
+#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1520
+#: templates/js/translated/stock.js:2479
msgid "Select"
msgstr ""
@@ -7735,7 +7828,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2540
+#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2698
msgid "No user information"
msgstr ""
@@ -7808,34 +7901,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:511
-#: templates/js/translated/part.js:596
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:517
+#: templates/js/translated/part.js:602
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:515
-#: templates/js/translated/part.js:600
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:521
+#: templates/js/translated/part.js:606
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:690
+#: templates/js/translated/company.js:631 templates/js/translated/part.js:696
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:732
+#: templates/js/translated/company.js:668 templates/js/translated/part.js:738
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:733
+#: templates/js/translated/company.js:669 templates/js/translated/part.js:739
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:750
+#: templates/js/translated/company.js:688 templates/js/translated/part.js:756
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:762
+#: templates/js/translated/company.js:699 templates/js/translated/part.js:768
msgid "Delete Parameter"
msgstr ""
@@ -7844,12 +7937,12 @@ msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:420
+#: templates/js/translated/filters.js:429
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:421
+#: templates/js/translated/filters.js:430
msgid "false"
msgstr ""
@@ -7869,7 +7962,7 @@ msgstr ""
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:329
+#: templates/js/translated/filters.js:338
msgid "Create filter"
msgstr ""
@@ -7898,20 +7991,20 @@ msgstr ""
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1080 templates/modals.html:19
+#: templates/js/translated/forms.js:1082 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1471
+#: templates/js/translated/forms.js:1487
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1675
+#: templates/js/translated/forms.js:1691
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1895
+#: templates/js/translated/forms.js:1930
msgid "Clear input"
msgstr ""
@@ -7924,7 +8017,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1042
+#: templates/js/translated/stock.js:1050
msgid "Select Stock Items"
msgstr ""
@@ -7974,12 +8067,12 @@ msgid "Select Label Template"
msgstr ""
#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
-#: templates/js/translated/modals.js:599
+#: templates/js/translated/modals.js:610
msgid "Cancel"
msgstr "Annuler"
#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:666 templates/js/translated/modals.js:969
+#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:982
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
@@ -7988,47 +8081,47 @@ msgstr ""
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:381
+#: templates/js/translated/modals.js:392
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:540
+#: templates/js/translated/modals.js:551
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:598
+#: templates/js/translated/modals.js:609
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:655
+#: templates/js/translated/modals.js:666
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:921
+#: templates/js/translated/modals.js:934
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:921
+#: templates/js/translated/modals.js:934
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:946
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1030
+#: templates/js/translated/modals.js:1043
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1045
+#: templates/js/translated/modals.js:1058
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1046
+#: templates/js/translated/modals.js:1059
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1069
+#: templates/js/translated/modals.js:1082
msgid "Error requesting form data"
msgstr ""
@@ -8052,23 +8145,24 @@ msgstr ""
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:236
+#: templates/js/translated/model_renderers.js:249
+#: templates/js/translated/model_renderers.js:270
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:253
+#: templates/js/translated/model_renderers.js:287
msgid "Shipment ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:273
+#: templates/js/translated/model_renderers.js:307
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:310
+#: templates/js/translated/model_renderers.js:344
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:339
+#: templates/js/translated/model_renderers.js:373
msgid "Supplier Part ID"
msgstr ""
@@ -8116,7 +8210,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2123
+#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2131
msgid "Stock Status"
msgstr ""
@@ -8140,7 +8234,7 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:790 templates/js/translated/part.js:803
+#: templates/js/translated/order.js:790 templates/js/translated/part.js:809
msgid "No purchase orders found"
msgstr ""
@@ -8165,7 +8259,7 @@ msgid "Total"
msgstr ""
#: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163
-#: templates/js/translated/part.js:1834 templates/js/translated/part.js:2045
+#: templates/js/translated/part.js:1841 templates/js/translated/part.js:2052
msgid "Unit Price"
msgstr ""
@@ -8181,7 +8275,7 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1166 templates/js/translated/part.js:935
+#: templates/js/translated/order.js:1166 templates/js/translated/part.js:942
msgid "Receive line item"
msgstr ""
@@ -8250,9 +8344,9 @@ msgid "Delete Stock Allocation"
msgstr ""
#: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048
-#: templates/js/translated/stock.js:1428
+#: templates/js/translated/stock.js:1436
msgid "Shipped to customer"
-msgstr ""
+msgstr "Livré au client"
#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2057
msgid "Stock location not specified"
@@ -8260,15 +8354,15 @@ msgstr ""
#: templates/js/translated/order.js:2297
msgid "Allocate serial numbers"
-msgstr ""
+msgstr "Allouer des numéros de série"
#: templates/js/translated/order.js:2303
msgid "Purchase stock"
-msgstr ""
+msgstr "Acheter du stock"
#: templates/js/translated/order.js:2310 templates/js/translated/order.js:2476
msgid "Calculate price"
-msgstr ""
+msgstr "Calculer le prix"
#: templates/js/translated/order.js:2321
msgid "Cannot be deleted as items have been shipped"
@@ -8280,7 +8374,7 @@ msgstr ""
#: templates/js/translated/order.js:2382
msgid "Allocate Serial Numbers"
-msgstr ""
+msgstr "Allouer des numéros de série"
#: templates/js/translated/order.js:2484
msgid "Update Unit Price"
@@ -8292,27 +8386,27 @@ msgstr ""
#: templates/js/translated/part.js:54
msgid "Part Attributes"
-msgstr ""
+msgstr "Attributs de la pièce"
#: templates/js/translated/part.js:58
msgid "Part Creation Options"
-msgstr ""
+msgstr "Options de création de pièce"
#: templates/js/translated/part.js:62
msgid "Part Duplication Options"
-msgstr ""
+msgstr "Options de duplication de pièces"
#: templates/js/translated/part.js:66
msgid "Supplier Options"
-msgstr ""
+msgstr "Options de fournisseur"
#: templates/js/translated/part.js:80
msgid "Add Part Category"
-msgstr ""
+msgstr "Ajouter une catégorie de pièce"
#: templates/js/translated/part.js:164
msgid "Create Initial Stock"
-msgstr ""
+msgstr "Créer un stock initial"
#: templates/js/translated/part.js:165
msgid "Create an initial stock item for this part"
@@ -8348,7 +8442,7 @@ msgstr ""
#: templates/js/translated/part.js:264
msgid "Copy Image"
-msgstr ""
+msgstr "Copier l'image"
#: templates/js/translated/part.js:265
msgid "Copy image from original part"
@@ -8360,7 +8454,7 @@ msgstr ""
#: templates/js/translated/part.js:280
msgid "Copy Parameters"
-msgstr ""
+msgstr "Copier les paramètres"
#: templates/js/translated/part.js:281
msgid "Copy parameter data from original part"
@@ -8372,164 +8466,168 @@ msgstr ""
#: templates/js/translated/part.js:338
msgid "Edit Part"
-msgstr ""
+msgstr "Modifier la pièce"
#: templates/js/translated/part.js:340
msgid "Part edited"
-msgstr ""
+msgstr "Pièce modifiée"
-#: templates/js/translated/part.js:412
+#: templates/js/translated/part.js:351
+msgid "Create Part Variant"
+msgstr "Créer une variante de pièce"
+
+#: templates/js/translated/part.js:418
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:414
+#: templates/js/translated/part.js:420
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:419
+#: templates/js/translated/part.js:425
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:421
+#: templates/js/translated/part.js:427
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:438
+#: templates/js/translated/part.js:444
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:448
+#: templates/js/translated/part.js:454
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:451
+#: templates/js/translated/part.js:457
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:475
+#: templates/js/translated/part.js:481
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:503 templates/js/translated/part.js:588
+#: templates/js/translated/part.js:509 templates/js/translated/part.js:594
msgid "Trackable part"
-msgstr ""
+msgstr "Pièce traçable"
-#: templates/js/translated/part.js:507 templates/js/translated/part.js:592
+#: templates/js/translated/part.js:513 templates/js/translated/part.js:598
msgid "Virtual part"
-msgstr ""
+msgstr "Pièce virtuelle"
-#: templates/js/translated/part.js:519
+#: templates/js/translated/part.js:525
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:529
msgid "Salable part"
-msgstr ""
+msgstr "Pièce vendable"
-#: templates/js/translated/part.js:638
+#: templates/js/translated/part.js:644
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1005
+#: templates/js/translated/part.js:1012
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1029
+#: templates/js/translated/part.js:1036
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1096 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:1363
msgid "No parts found"
-msgstr ""
+msgstr "Aucune pièce trouvée"
-#: templates/js/translated/part.js:1266
+#: templates/js/translated/part.js:1273
msgid "No category"
-msgstr ""
+msgstr "Aucune catégorie"
-#: templates/js/translated/part.js:1289
+#: templates/js/translated/part.js:1296
#: templates/js/translated/table_filters.js:430
msgid "Low stock"
-msgstr ""
+msgstr "Stock bas"
-#: templates/js/translated/part.js:1380 templates/js/translated/part.js:1552
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559
+#: templates/js/translated/stock.js:2440
msgid "Display as list"
-msgstr ""
+msgstr "Afficher sous forme de liste"
-#: templates/js/translated/part.js:1396
+#: templates/js/translated/part.js:1403
msgid "Display as grid"
-msgstr ""
+msgstr "Afficher sous forme de grille"
-#: templates/js/translated/part.js:1571 templates/js/translated/stock.js:2301
+#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2459
msgid "Display as tree"
-msgstr ""
+msgstr "Afficher sous forme d'arborescence"
-#: templates/js/translated/part.js:1635
+#: templates/js/translated/part.js:1642
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1649 templates/js/translated/stock.js:2345
+#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2503
msgid "Path"
-msgstr ""
+msgstr "Chemin d'accès"
-#: templates/js/translated/part.js:1693
+#: templates/js/translated/part.js:1700
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1744 templates/js/translated/stock.js:1234
+#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1242
msgid "Edit test result"
-msgstr ""
+msgstr "Modifier le résultat du test"
-#: templates/js/translated/part.js:1745 templates/js/translated/stock.js:1235
+#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1243
msgid "Delete test result"
-msgstr ""
+msgstr "Supprimer le résultat du test"
-#: templates/js/translated/part.js:1751
+#: templates/js/translated/part.js:1758
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1773
+#: templates/js/translated/part.js:1780
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1787
+#: templates/js/translated/part.js:1794
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1812
+#: templates/js/translated/part.js:1819
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1867
+#: templates/js/translated/part.js:1874
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1868
+#: templates/js/translated/part.js:1875
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1969
+#: templates/js/translated/part.js:1976
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1988
+#: templates/js/translated/part.js:1995
msgid "Single Price Difference"
msgstr ""
#: templates/js/translated/plugin.js:22
msgid "The Plugin was installed"
-msgstr ""
+msgstr "Le plugin a été installé"
#: templates/js/translated/report.js:67
msgid "items selected"
-msgstr ""
+msgstr "éléments sélectionnés"
#: templates/js/translated/report.js:75
msgid "Select Report Template"
-msgstr ""
+msgstr "Sélectionner un template de reporting"
#: templates/js/translated/report.js:90
msgid "Select Test Report Template"
@@ -8589,346 +8687,350 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:73
+#: templates/js/translated/stock.js:74
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:173
+#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:181
msgid "Next available serial number"
-msgstr ""
+msgstr "Prochain numéro de série disponible"
-#: templates/js/translated/stock.js:93 templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:94 templates/js/translated/stock.js:183
msgid "Latest serial number"
-msgstr ""
+msgstr "Dernier numéro de série"
-#: templates/js/translated/stock.js:101
+#: templates/js/translated/stock.js:102
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:110
+#: templates/js/translated/stock.js:111
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:146
+#: templates/js/translated/stock.js:154
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:186
+#: templates/js/translated/stock.js:194
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:225
+#: templates/js/translated/stock.js:233
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:231
+#: templates/js/translated/stock.js:239
msgid "Enter serial numbers for new stock (or leave blank)"
-msgstr ""
+msgstr "Entrez les numéros de série pour le nouveau stock (ou laisser vide)"
-#: templates/js/translated/stock.js:374
+#: templates/js/translated/stock.js:382
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:387
+#: templates/js/translated/stock.js:395
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:412
+#: templates/js/translated/stock.js:420
msgid "Find Serial Number"
-msgstr ""
+msgstr "Trouver un numéro de série"
-#: templates/js/translated/stock.js:416 templates/js/translated/stock.js:417
+#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425
msgid "Enter serial number"
-msgstr ""
+msgstr "Entrer le numéro de série"
-#: templates/js/translated/stock.js:433
+#: templates/js/translated/stock.js:441
msgid "Enter a serial number"
-msgstr ""
+msgstr "Entrer un numéro de série"
-#: templates/js/translated/stock.js:453
+#: templates/js/translated/stock.js:461
msgid "No matching serial number"
-msgstr ""
+msgstr "Aucun numéro de série correspondant"
-#: templates/js/translated/stock.js:462
+#: templates/js/translated/stock.js:470
msgid "More than one matching result found"
-msgstr ""
+msgstr "Plus d'un résultat correspondant trouvé"
-#: templates/js/translated/stock.js:507
+#: templates/js/translated/stock.js:515
msgid "Export Stock"
-msgstr ""
+msgstr "Exporter le stock"
-#: templates/js/translated/stock.js:518
+#: templates/js/translated/stock.js:526
msgid "Include Sublocations"
-msgstr ""
+msgstr "Inclure les sous-emplacements"
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:527
msgid "Include stock items in sublocations"
-msgstr ""
+msgstr "Inclure les articles en stock dans les sous-emplacements"
-#: templates/js/translated/stock.js:628
+#: templates/js/translated/stock.js:636
msgid "Confirm stock assignment"
-msgstr ""
+msgstr "Confirmer l'assignation de stock"
-#: templates/js/translated/stock.js:629
+#: templates/js/translated/stock.js:637
msgid "Assign Stock to Customer"
-msgstr ""
+msgstr "Assigner le stock au client"
-#: templates/js/translated/stock.js:706
+#: templates/js/translated/stock.js:714
msgid "Warning: Merge operation cannot be reversed"
-msgstr ""
+msgstr "Attention : l'opération de fusion est irréversible"
-#: templates/js/translated/stock.js:707
+#: templates/js/translated/stock.js:715
msgid "Some information will be lost when merging stock items"
-msgstr ""
+msgstr "Certaines informations seront perdues lors de la fusion des articles en stock"
-#: templates/js/translated/stock.js:709
+#: templates/js/translated/stock.js:717
msgid "Stock transaction history will be deleted for merged items"
-msgstr ""
+msgstr "L'historique des transactions de stock sera supprimé pour les éléments fusionnés"
-#: templates/js/translated/stock.js:710
+#: templates/js/translated/stock.js:718
msgid "Supplier part information will be deleted for merged items"
-msgstr ""
+msgstr "Les informations sur la pièce du fournisseur seront supprimées pour les éléments fusionnés"
-#: templates/js/translated/stock.js:796
+#: templates/js/translated/stock.js:804
msgid "Confirm stock item merge"
-msgstr ""
+msgstr "Confirmer la fusion de l'article en stock"
-#: templates/js/translated/stock.js:797
+#: templates/js/translated/stock.js:805
msgid "Merge Stock Items"
-msgstr ""
-
-#: templates/js/translated/stock.js:892
-msgid "Transfer Stock"
-msgstr ""
-
-#: templates/js/translated/stock.js:893
-msgid "Move"
-msgstr ""
-
-#: templates/js/translated/stock.js:899
-msgid "Count Stock"
-msgstr ""
+msgstr "Fusionner les articles en stock"
#: templates/js/translated/stock.js:900
+msgid "Transfer Stock"
+msgstr "Transférer le stock"
+
+#: templates/js/translated/stock.js:901
+msgid "Move"
+msgstr "Transférer"
+
+#: templates/js/translated/stock.js:907
+msgid "Count Stock"
+msgstr "Compter le stock"
+
+#: templates/js/translated/stock.js:908
msgid "Count"
-msgstr ""
+msgstr "Compter"
-#: templates/js/translated/stock.js:904
+#: templates/js/translated/stock.js:912
msgid "Remove Stock"
-msgstr ""
+msgstr "Supprimer du stock"
-#: templates/js/translated/stock.js:905
+#: templates/js/translated/stock.js:913
msgid "Take"
-msgstr ""
+msgstr "Supprimer"
-#: templates/js/translated/stock.js:909
+#: templates/js/translated/stock.js:917
msgid "Add Stock"
-msgstr ""
+msgstr "Ajouter du stock"
-#: templates/js/translated/stock.js:910 users/models.py:206
+#: templates/js/translated/stock.js:918 users/models.py:208
msgid "Add"
-msgstr ""
+msgstr "Ajouter"
-#: templates/js/translated/stock.js:914 templates/stock_table.html:58
+#: templates/js/translated/stock.js:922 templates/stock_table.html:58
msgid "Delete Stock"
-msgstr ""
+msgstr "Supprimer le stock"
-#: templates/js/translated/stock.js:1003
+#: templates/js/translated/stock.js:1011
msgid "Quantity cannot be adjusted for serialized stock"
-msgstr ""
+msgstr "La quantité ne peut pas être ajustée pour un stock sérialisé"
-#: templates/js/translated/stock.js:1003
+#: templates/js/translated/stock.js:1011
msgid "Specify stock quantity"
-msgstr ""
+msgstr "Spécifiez la quantité du stock"
-#: templates/js/translated/stock.js:1043
+#: templates/js/translated/stock.js:1051
msgid "You must select at least one available stock item"
-msgstr ""
+msgstr "Vous devez sélectionner au moins un article en stock disponible"
-#: templates/js/translated/stock.js:1201
+#: templates/js/translated/stock.js:1209
msgid "PASS"
-msgstr ""
+msgstr "RÉUSSI"
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1211
msgid "FAIL"
-msgstr ""
+msgstr "ÉCHEC"
-#: templates/js/translated/stock.js:1208
+#: templates/js/translated/stock.js:1216
msgid "NO RESULT"
-msgstr ""
+msgstr "AUCUN RÉSULTAT"
-#: templates/js/translated/stock.js:1230
+#: templates/js/translated/stock.js:1238
msgid "Add test result"
-msgstr ""
+msgstr "Ajouter un résultat de test"
-#: templates/js/translated/stock.js:1256
+#: templates/js/translated/stock.js:1264
msgid "No test results found"
-msgstr ""
+msgstr "Aucun résultat de test trouvé"
-#: templates/js/translated/stock.js:1313
+#: templates/js/translated/stock.js:1321
msgid "Test Date"
-msgstr ""
+msgstr "Date du test"
-#: templates/js/translated/stock.js:1420
+#: templates/js/translated/stock.js:1428
msgid "In production"
-msgstr ""
-
-#: templates/js/translated/stock.js:1424
-msgid "Installed in Stock Item"
-msgstr ""
+msgstr "En production"
#: templates/js/translated/stock.js:1432
+msgid "Installed in Stock Item"
+msgstr "Article en stock installé dans un autre article en stock"
+
+#: templates/js/translated/stock.js:1440
msgid "Assigned to Sales Order"
-msgstr ""
+msgstr "Assigné à une commande de vente"
-#: templates/js/translated/stock.js:1438
+#: templates/js/translated/stock.js:1446
msgid "No stock location set"
-msgstr ""
-
-#: templates/js/translated/stock.js:1596
-msgid "Stock item is in production"
-msgstr ""
-
-#: templates/js/translated/stock.js:1601
-msgid "Stock item assigned to sales order"
-msgstr ""
+msgstr "Aucun emplacement de stock défini"
#: templates/js/translated/stock.js:1604
+msgid "Stock item is in production"
+msgstr "L'article de stock est en production"
+
+#: templates/js/translated/stock.js:1609
+msgid "Stock item assigned to sales order"
+msgstr "L'article en stock a été assigné à une commande de vente"
+
+#: templates/js/translated/stock.js:1612
msgid "Stock item assigned to customer"
-msgstr ""
-
-#: templates/js/translated/stock.js:1608
-msgid "Stock item has expired"
-msgstr ""
-
-#: templates/js/translated/stock.js:1610
-msgid "Stock item will expire soon"
-msgstr ""
+msgstr "L'article en stock a été assigné à un client"
#: templates/js/translated/stock.js:1616
-msgid "Serialized stock item has been allocated"
-msgstr ""
+msgid "Stock item has expired"
+msgstr "L'article en stock a expiré"
#: templates/js/translated/stock.js:1618
+msgid "Stock item will expire soon"
+msgstr "L'article en stock va bientôt expirer"
+
+#: templates/js/translated/stock.js:1624
+msgid "Serialized stock item has been allocated"
+msgstr "L'article de stock sérialisé a été alloué"
+
+#: templates/js/translated/stock.js:1626
msgid "Stock item has been fully allocated"
-msgstr ""
+msgstr "L'article de stock a été complètement alloué"
-#: templates/js/translated/stock.js:1620
+#: templates/js/translated/stock.js:1628
msgid "Stock item has been partially allocated"
-msgstr ""
+msgstr "L'article de stock a été partiellement alloué"
-#: templates/js/translated/stock.js:1625
+#: templates/js/translated/stock.js:1633
msgid "Stock item has been installed in another item"
-msgstr ""
-
-#: templates/js/translated/stock.js:1632
-msgid "Stock item has been rejected"
-msgstr ""
-
-#: templates/js/translated/stock.js:1634
-msgid "Stock item is lost"
-msgstr ""
-
-#: templates/js/translated/stock.js:1636
-msgid "Stock item is destroyed"
-msgstr ""
+msgstr "L'article en stock a été installé dans un autre article"
#: templates/js/translated/stock.js:1640
+msgid "Stock item has been rejected"
+msgstr "L'article de stock a été rejeté"
+
+#: templates/js/translated/stock.js:1642
+msgid "Stock item is lost"
+msgstr "L'article de stock est perdu"
+
+#: templates/js/translated/stock.js:1644
+msgid "Stock item is destroyed"
+msgstr "L'article de stock est détruit"
+
+#: templates/js/translated/stock.js:1648
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
-msgstr ""
+msgstr "Epuisé"
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1698
msgid "Stocktake"
-msgstr ""
+msgstr "Prise d'inventaire"
-#: templates/js/translated/stock.js:1763
+#: templates/js/translated/stock.js:1771
msgid "Supplier part not specified"
-msgstr ""
+msgstr "Pièce de fournisseur non précisée"
-#: templates/js/translated/stock.js:1801
+#: templates/js/translated/stock.js:1809
msgid "No stock items matching query"
-msgstr ""
+msgstr "Aucun article de stock ne correspond à la requête"
-#: templates/js/translated/stock.js:1822 templates/js/translated/stock.js:1870
+#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:1878
msgid "items"
-msgstr ""
+msgstr "articles"
-#: templates/js/translated/stock.js:1910
+#: templates/js/translated/stock.js:1918
msgid "batches"
-msgstr ""
+msgstr "lots"
-#: templates/js/translated/stock.js:1937
+#: templates/js/translated/stock.js:1945
msgid "locations"
-msgstr ""
+msgstr "emplacements"
-#: templates/js/translated/stock.js:1939
+#: templates/js/translated/stock.js:1947
msgid "Undefined location"
-msgstr ""
+msgstr "Emplacement indéfini"
-#: templates/js/translated/stock.js:2138
+#: templates/js/translated/stock.js:2146
msgid "Set Stock Status"
-msgstr ""
+msgstr "Définir l'état du stock"
-#: templates/js/translated/stock.js:2152
+#: templates/js/translated/stock.js:2160
msgid "Select Status Code"
-msgstr ""
+msgstr "Sélectionner le code de statut"
-#: templates/js/translated/stock.js:2153
+#: templates/js/translated/stock.js:2161
msgid "Status code must be selected"
-msgstr ""
+msgstr "Le code de statut doit être sélectionné"
-#: templates/js/translated/stock.js:2377
+#: templates/js/translated/stock.js:2340
+msgid "Allocated Quantity"
+msgstr "Quantité Allouée"
+
+#: templates/js/translated/stock.js:2535
msgid "Invalid date"
-msgstr ""
+msgstr "Date invalide"
-#: templates/js/translated/stock.js:2399
+#: templates/js/translated/stock.js:2557
msgid "Details"
msgstr "Détails"
-#: templates/js/translated/stock.js:2424
+#: templates/js/translated/stock.js:2582
msgid "Location no longer exists"
-msgstr ""
+msgstr "L'emplacement n'existe plus"
-#: templates/js/translated/stock.js:2443
+#: templates/js/translated/stock.js:2601
msgid "Purchase order no longer exists"
-msgstr ""
+msgstr "La commande d'achat n'existe plus"
-#: templates/js/translated/stock.js:2462
+#: templates/js/translated/stock.js:2620
msgid "Customer no longer exists"
-msgstr ""
+msgstr "Le client n'existe plus"
-#: templates/js/translated/stock.js:2480
+#: templates/js/translated/stock.js:2638
msgid "Stock item no longer exists"
-msgstr ""
+msgstr "L'article de stock n'existe plus"
-#: templates/js/translated/stock.js:2503
+#: templates/js/translated/stock.js:2661
msgid "Added"
-msgstr ""
+msgstr "Ajouté"
-#: templates/js/translated/stock.js:2511
+#: templates/js/translated/stock.js:2669
msgid "Removed"
-msgstr ""
+msgstr "Supprimé"
-#: templates/js/translated/stock.js:2552
+#: templates/js/translated/stock.js:2710
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2553
+#: templates/js/translated/stock.js:2711
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2604
+#: templates/js/translated/stock.js:2762
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2655
+#: templates/js/translated/stock.js:2813
msgid "Uninstall Stock Item"
msgstr ""
#: templates/js/translated/table_filters.js:56
msgid "Trackable Part"
-msgstr ""
+msgstr "Pièce traçable"
#: templates/js/translated/table_filters.js:60
msgid "Assembled Part"
@@ -8936,7 +9038,7 @@ msgstr ""
#: templates/js/translated/table_filters.js:64
msgid "Validated"
-msgstr ""
+msgstr "Validée"
#: templates/js/translated/table_filters.js:72
msgid "Allow Variant Stock"
@@ -8945,17 +9047,17 @@ msgstr ""
#: templates/js/translated/table_filters.js:110
#: templates/js/translated/table_filters.js:183
msgid "Include sublocations"
-msgstr ""
+msgstr "Inclure les sous-emplacements"
#: templates/js/translated/table_filters.js:111
msgid "Include locations"
-msgstr ""
+msgstr "Inclure les emplacements"
#: templates/js/translated/table_filters.js:121
#: templates/js/translated/table_filters.js:122
#: templates/js/translated/table_filters.js:407
msgid "Include subcategories"
-msgstr ""
+msgstr "Inclure les sous-catégories"
#: templates/js/translated/table_filters.js:126
#: templates/js/translated/table_filters.js:442
@@ -8965,64 +9067,64 @@ msgstr ""
#: templates/js/translated/table_filters.js:136
#: templates/js/translated/table_filters.js:218
msgid "Is Serialized"
-msgstr ""
+msgstr "A un numéro de série"
#: templates/js/translated/table_filters.js:139
#: templates/js/translated/table_filters.js:225
msgid "Serial number GTE"
-msgstr ""
+msgstr "Numéro de série PGE"
#: templates/js/translated/table_filters.js:140
#: templates/js/translated/table_filters.js:226
msgid "Serial number greater than or equal to"
-msgstr ""
+msgstr "Numéro de série supérieur ou égal à"
#: templates/js/translated/table_filters.js:143
#: templates/js/translated/table_filters.js:229
msgid "Serial number LTE"
-msgstr ""
+msgstr "Numéro de série PPE"
#: templates/js/translated/table_filters.js:144
#: templates/js/translated/table_filters.js:230
msgid "Serial number less than or equal to"
-msgstr ""
+msgstr "Numéro de série inférieur ou égal à"
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:148
#: templates/js/translated/table_filters.js:221
#: templates/js/translated/table_filters.js:222
msgid "Serial number"
-msgstr ""
+msgstr "Numéro de série"
#: templates/js/translated/table_filters.js:152
#: templates/js/translated/table_filters.js:239
msgid "Batch code"
-msgstr ""
+msgstr "Code de lot"
#: templates/js/translated/table_filters.js:163
#: templates/js/translated/table_filters.js:379
msgid "Active parts"
-msgstr ""
+msgstr "Pièces actives"
#: templates/js/translated/table_filters.js:164
msgid "Show stock for active parts"
-msgstr ""
+msgstr "Afficher le stock pour les pièces actives"
#: templates/js/translated/table_filters.js:169
msgid "Part is an assembly"
-msgstr ""
+msgstr "La pièce est un assemblage"
#: templates/js/translated/table_filters.js:173
msgid "Is allocated"
-msgstr ""
+msgstr "Est alloué"
#: templates/js/translated/table_filters.js:174
msgid "Item has been allocated"
-msgstr ""
+msgstr "L'élément a été alloué"
#: templates/js/translated/table_filters.js:179
msgid "Stock is available for use"
-msgstr ""
+msgstr "Le stock est disponible pour utilisation"
#: templates/js/translated/table_filters.js:184
msgid "Include stock in sublocations"
@@ -9058,56 +9160,56 @@ msgstr ""
#: templates/js/translated/table_filters.js:209
msgid "Show stock items which are installed in another item"
-msgstr ""
+msgstr "Afficher les articles de stock qui sont installés dans un autre article"
#: templates/js/translated/table_filters.js:214
msgid "Show items which have been assigned to a customer"
-msgstr ""
+msgstr "Afficher les articles qui ont été assignés à un client"
#: templates/js/translated/table_filters.js:234
#: templates/js/translated/table_filters.js:235
msgid "Stock status"
-msgstr ""
+msgstr "État du stock"
#: templates/js/translated/table_filters.js:243
msgid "Has purchase price"
-msgstr ""
+msgstr "A un prix d'achat"
#: templates/js/translated/table_filters.js:244
msgid "Show stock items which have a purchase price set"
-msgstr ""
+msgstr "Afficher les articles de stock qui ont un prix d'achat défini"
#: templates/js/translated/table_filters.js:253
msgid "Show stock items which have expired"
-msgstr ""
+msgstr "Afficher les articles de stock qui ont expiré"
#: templates/js/translated/table_filters.js:259
msgid "Show stock which is close to expiring"
-msgstr ""
+msgstr "Afficher le stock qui est proche de l'expiration"
#: templates/js/translated/table_filters.js:290
msgid "Build status"
-msgstr ""
+msgstr "État de la construction"
#: templates/js/translated/table_filters.js:303
#: templates/js/translated/table_filters.js:344
msgid "Assigned to me"
-msgstr ""
+msgstr "Assigné à moi"
#: templates/js/translated/table_filters.js:320
#: templates/js/translated/table_filters.js:331
#: templates/js/translated/table_filters.js:352
msgid "Order status"
-msgstr ""
+msgstr "État de la commande"
#: templates/js/translated/table_filters.js:336
#: templates/js/translated/table_filters.js:357
msgid "Outstanding"
-msgstr ""
+msgstr "En suspens"
#: templates/js/translated/table_filters.js:408
msgid "Include parts in subcategories"
-msgstr ""
+msgstr "Inclure les pièces des sous-catégories"
#: templates/js/translated/table_filters.js:412
msgid "Has IPN"
@@ -9115,64 +9217,64 @@ msgstr "A un IPN"
#: templates/js/translated/table_filters.js:413
msgid "Part has internal part number"
-msgstr ""
+msgstr "La pièce a un numéro de pièce interne"
#: templates/js/translated/table_filters.js:418
msgid "Show active parts"
-msgstr ""
+msgstr "Afficher les pièces actives"
#: templates/js/translated/table_filters.js:426
msgid "Stock available"
-msgstr ""
+msgstr "Stock disponible"
#: templates/js/translated/table_filters.js:454
msgid "Purchasable"
-msgstr ""
+msgstr "Achetable"
#: templates/js/translated/tables.js:368
msgid "Loading data"
-msgstr ""
+msgstr "Chargement des données"
#: templates/js/translated/tables.js:371
msgid "rows per page"
-msgstr ""
+msgstr "résultats par page"
#: templates/js/translated/tables.js:376
msgid "Showing all rows"
-msgstr ""
+msgstr "Afficher toutes les lignes"
#: templates/js/translated/tables.js:378
msgid "Showing"
-msgstr ""
+msgstr "Afficher"
#: templates/js/translated/tables.js:378
msgid "to"
-msgstr ""
+msgstr "à"
#: templates/js/translated/tables.js:378
msgid "of"
-msgstr ""
+msgstr "de"
#: templates/js/translated/tables.js:378
msgid "rows"
-msgstr ""
+msgstr "lignes"
#: templates/js/translated/tables.js:382 templates/search_form.html:6
#: templates/search_form.html:7
msgid "Search"
-msgstr ""
+msgstr "Rechercher"
#: templates/js/translated/tables.js:385
msgid "No matching results"
-msgstr ""
+msgstr "Aucun résultat correspondant n'a été trouvé"
#: templates/js/translated/tables.js:388
msgid "Hide/Show pagination"
-msgstr ""
+msgstr "Masquer/Afficher la pagination"
#: templates/js/translated/tables.js:391
msgid "Refresh"
-msgstr ""
+msgstr "Actualiser"
#: templates/js/translated/tables.js:394
msgid "Toggle"
@@ -9180,51 +9282,51 @@ msgstr ""
#: templates/js/translated/tables.js:397
msgid "Columns"
-msgstr ""
+msgstr "Colonnes"
#: templates/js/translated/tables.js:400
msgid "All"
-msgstr ""
+msgstr "Tout"
#: templates/navbar.html:42
msgid "Buy"
-msgstr ""
+msgstr "Acheter"
#: templates/navbar.html:54
msgid "Sell"
msgstr "Ventes"
-#: templates/navbar.html:113
+#: templates/navbar.html:114
msgid "Logout"
-msgstr ""
+msgstr "Se déconnecter"
-#: templates/navbar.html:115
+#: templates/navbar.html:116
msgid "Login"
-msgstr ""
+msgstr "Se connecter"
#: templates/navbar.html:136
msgid "About InvenTree"
-msgstr ""
+msgstr "À propos d'InvenTree"
#: templates/navbar_demo.html:5
msgid "InvenTree demo mode"
-msgstr ""
+msgstr "Mode démo de InvenTree"
#: templates/qr_code.html:11
msgid "QR data not provided"
-msgstr ""
+msgstr "Données QR non fournies"
#: templates/registration/logged_out.html:6
msgid "You were logged out successfully."
-msgstr ""
+msgstr "Vous avez été déconnecté avec succès."
#: templates/registration/logged_out.html:8
msgid "Log in again"
-msgstr ""
+msgstr "Se reconnecter"
#: templates/stats.html:9
msgid "Server"
-msgstr ""
+msgstr "Serveur"
#: templates/stats.html:13
msgid "Instance Name"
@@ -9232,45 +9334,57 @@ msgstr ""
#: templates/stats.html:18
msgid "Database"
-msgstr ""
+msgstr "Base de données"
#: templates/stats.html:26
msgid "Server is running in debug mode"
-msgstr ""
+msgstr "Le serveur fonctionne en mode débogage"
#: templates/stats.html:33
msgid "Docker Mode"
-msgstr ""
+msgstr "Mode Docker"
#: templates/stats.html:34
msgid "Server is deployed using docker"
-msgstr ""
+msgstr "Le serveur est déployé en utilisant docker"
-#: templates/stats.html:40
-msgid "Server status"
-msgstr ""
+#: templates/stats.html:39
+msgid "Plugin Support"
+msgstr "Support des plugins"
#: templates/stats.html:43
-msgid "Healthy"
-msgstr ""
+msgid "Plugin support enabled"
+msgstr "Prise en charge des plugins activée"
#: templates/stats.html:45
-msgid "Issues detected"
-msgstr ""
+msgid "Plugin support disabled"
+msgstr "Prise en charge des plugins désactivée"
#: templates/stats.html:52
+msgid "Server status"
+msgstr "Statut serveur"
+
+#: templates/stats.html:55
+msgid "Healthy"
+msgstr "Bon"
+
+#: templates/stats.html:57
+msgid "Issues detected"
+msgstr "Problèmes détectés"
+
+#: templates/stats.html:64
msgid "Background Worker"
msgstr ""
-#: templates/stats.html:55
+#: templates/stats.html:67
msgid "Background worker not running"
msgstr ""
-#: templates/stats.html:63
+#: templates/stats.html:75
msgid "Email Settings"
msgstr ""
-#: templates/stats.html:66
+#: templates/stats.html:78
msgid "Email settings not configured"
msgstr ""
@@ -9312,89 +9426,89 @@ msgstr ""
#: templates/stock_table.html:52
msgid "Merge selected stock items"
-msgstr ""
+msgstr "Fusionner les éléments de stock sélectionnés"
#: templates/stock_table.html:52
msgid "Merge stock"
-msgstr ""
+msgstr "Fusionner le stock"
#: templates/stock_table.html:53
msgid "Order selected items"
-msgstr ""
+msgstr "Commander les éléments sélectionnés"
#: templates/stock_table.html:55
msgid "Change status"
-msgstr ""
+msgstr "Changer l'état du stock"
#: templates/stock_table.html:55
msgid "Change stock status"
-msgstr ""
+msgstr "Changer l'état du stock"
#: templates/stock_table.html:58
msgid "Delete selected items"
-msgstr ""
+msgstr "Supprimer les éléments sélectionnés"
#: templates/yesnolabel.html:4
msgid "Yes"
-msgstr ""
+msgstr "Oui"
#: templates/yesnolabel.html:6
msgid "No"
-msgstr ""
+msgstr "Non"
#: users/admin.py:64
msgid "Users"
-msgstr ""
+msgstr "Utilisateurs"
#: users/admin.py:65
msgid "Select which users are assigned to this group"
-msgstr ""
+msgstr "Sélectionner quels utilisateurs sont assignés à ce groupe"
#: users/admin.py:187
msgid "The following users are members of multiple groups:"
-msgstr ""
+msgstr "Les utilisateurs suivants sont membres de plusieurs groupes:"
#: users/admin.py:210
msgid "Personal info"
-msgstr ""
+msgstr "Informations personnelles"
#: users/admin.py:211
msgid "Permissions"
-msgstr ""
+msgstr "Droits"
#: users/admin.py:214
msgid "Important dates"
-msgstr ""
+msgstr "Dates importantes"
-#: users/models.py:193
+#: users/models.py:195
msgid "Permission set"
-msgstr ""
+msgstr "Droit défini"
-#: users/models.py:201
+#: users/models.py:203
msgid "Group"
-msgstr ""
-
-#: users/models.py:204
-msgid "View"
-msgstr ""
-
-#: users/models.py:204
-msgid "Permission to view items"
-msgstr ""
+msgstr "Groupe"
#: users/models.py:206
+msgid "View"
+msgstr "Vue"
+
+#: users/models.py:206
+msgid "Permission to view items"
+msgstr "Droit de voir des éléments"
+
+#: users/models.py:208
msgid "Permission to add items"
-msgstr ""
-
-#: users/models.py:208
-msgid "Change"
-msgstr ""
-
-#: users/models.py:208
-msgid "Permissions to edit items"
-msgstr ""
+msgstr "Droit d'ajouter des éléments"
#: users/models.py:210
-msgid "Permission to delete items"
-msgstr ""
+msgid "Change"
+msgstr "Modifier"
+
+#: users/models.py:210
+msgid "Permissions to edit items"
+msgstr "Droit de modifier des élément"
+
+#: users/models.py:212
+msgid "Permission to delete items"
+msgstr "Droit de supprimer des éléments"
diff --git a/InvenTree/locale/he/LC_MESSAGES/django.po b/InvenTree/locale/he/LC_MESSAGES/django.po
index ce530b28cd..050d2b4641 100644
--- a/InvenTree/locale/he/LC_MESSAGES/django.po
+++ b/InvenTree/locale/he/LC_MESSAGES/django.po
@@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-01-10 03:54+0000\n"
-"PO-Revision-Date: 2022-01-10 03:57\n"
+"POT-Creation-Date: 2022-01-29 00:17+0000\n"
+"PO-Revision-Date: 2022-01-29 04:45\n"
"Last-Translator: \n"
"Language-Team: Hebrew\n"
"Language: he_IL\n"
@@ -18,168 +18,169 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 138\n"
-#: InvenTree/api.py:64
+#: InvenTree/api.py:55
msgid "API endpoint not found"
msgstr ""
-#: InvenTree/api.py:110
+#: InvenTree/api.py:101
msgid "No action specified"
-msgstr ""
+msgstr "לא פורטה הפעולה"
-#: InvenTree/api.py:124
+#: InvenTree/api.py:116
msgid "No matching action found"
-msgstr ""
+msgstr "פעולה מבוקשת לא נמצאה"
#: InvenTree/fields.py:100
msgid "Enter date"
-msgstr ""
+msgstr "הזן תאריך סיום"
#: InvenTree/forms.py:126 build/forms.py:48 build/forms.py:69 order/forms.py:24
#: order/forms.py:35 order/forms.py:46 order/forms.py:57
#: templates/account/email_confirm.html:20 templates/js/translated/forms.js:595
msgid "Confirm"
-msgstr ""
+msgstr "אשר"
#: InvenTree/forms.py:142
msgid "Confirm delete"
-msgstr ""
+msgstr "אשר מחיקה"
#: InvenTree/forms.py:143
msgid "Confirm item deletion"
-msgstr ""
+msgstr "אשר מחיקה"
#: InvenTree/forms.py:174
msgid "Enter password"
-msgstr ""
+msgstr "הכנס סיסמה"
#: InvenTree/forms.py:175
msgid "Enter new password"
-msgstr ""
+msgstr "הכנס סיסמה חדשה"
#: InvenTree/forms.py:182
msgid "Confirm password"
-msgstr ""
+msgstr "אישור סיסמה"
#: InvenTree/forms.py:183
msgid "Confirm new password"
-msgstr ""
+msgstr "אשר סיסמה חדשה"
#: InvenTree/forms.py:215
msgid "Select Category"
-msgstr ""
+msgstr "בחר קטגוריה"
#: InvenTree/forms.py:236
msgid "Email (again)"
-msgstr ""
+msgstr "אימייל (שנית)"
#: InvenTree/forms.py:240
msgid "Email address confirmation"
-msgstr ""
+msgstr "אישור כתובת אימייל"
#: InvenTree/forms.py:260
msgid "You must type the same email each time."
-msgstr ""
+msgstr "חובה לרשום את אותו אימייל בכל פעם."
-#: InvenTree/helpers.py:437
+#: InvenTree/helpers.py:439
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:444 order/models.py:279 order/models.py:420
+#: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425
#: stock/views.py:1231
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:447
+#: InvenTree/helpers.py:449
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:469 InvenTree/helpers.py:472 InvenTree/helpers.py:475
-#: InvenTree/helpers.py:500
+#: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477
+#: InvenTree/helpers.py:502
#, python-brace-format
msgid "Invalid group: {g}"
-msgstr ""
+msgstr "קבוצה שגויה: {g}"
-#: InvenTree/helpers.py:510
+#: InvenTree/helpers.py:512
#, python-brace-format
msgid "Invalid group {group}"
-msgstr ""
+msgstr "קבוצה שגויה {group}"
-#: InvenTree/helpers.py:516
+#: InvenTree/helpers.py:518
#, python-brace-format
msgid "Invalid/no group {group}"
-msgstr ""
+msgstr "קבוצה שגויה / לא נמצאה {group}"
-#: InvenTree/helpers.py:522
+#: InvenTree/helpers.py:524
msgid "No serial numbers found"
-msgstr ""
+msgstr "מספרים סידוריים לא נמצאו"
-#: InvenTree/helpers.py:526
+#: InvenTree/helpers.py:528
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
-msgstr ""
+msgstr "כמות המספרים הסידוריים ({s}) מוכרים להיות תואמים לכמות ({q})"
#: InvenTree/models.py:120
msgid "Missing file"
-msgstr ""
+msgstr "קובץ חסר"
#: InvenTree/models.py:121
msgid "Missing external link"
-msgstr ""
+msgstr "חסר קישור חיצוני"
-#: InvenTree/models.py:132 stock/models.py:1967
+#: InvenTree/models.py:132 stock/models.py:1995
#: templates/js/translated/attachment.js:119
msgid "Attachment"
-msgstr ""
+msgstr "קובץ מצורף"
#: InvenTree/models.py:133
msgid "Select file to attach"
-msgstr ""
+msgstr "בחר קובץ לצירוף"
#: InvenTree/models.py:139 company/models.py:131 company/models.py:348
-#: company/models.py:564 order/models.py:124 part/models.py:828
+#: company/models.py:564 order/models.py:127 part/models.py:830
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1317
+#: templates/js/translated/company.js:829 templates/js/translated/part.js:1324
msgid "Link"
-msgstr ""
+msgstr "קישור"
-#: InvenTree/models.py:140 build/models.py:330 part/models.py:829
-#: stock/models.py:527
+#: InvenTree/models.py:140 build/models.py:332 part/models.py:831
+#: stock/models.py:529
msgid "Link to external URL"
-msgstr ""
+msgstr "קישור חיצוני"
#: InvenTree/models.py:143 templates/js/translated/attachment.js:163
msgid "Comment"
-msgstr ""
+msgstr "הערה"
#: InvenTree/models.py:143
msgid "File comment"
-msgstr ""
+msgstr "הערת קובץ"
-#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213
-#: common/models.py:1214 part/models.py:2258 part/models.py:2278
+#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1223
+#: common/models.py:1224 common/models.py:1452 common/models.py:1453
+#: part/models.py:2265 part/models.py:2285
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2534
+#: templates/js/translated/stock.js:2692
msgid "User"
-msgstr ""
+msgstr "משתמש"
#: InvenTree/models.py:153
msgid "upload date"
-msgstr ""
+msgstr "תאריך העלאה"
#: InvenTree/models.py:176
msgid "Filename must not be empty"
-msgstr ""
+msgstr "חובה למלא שם קובץ"
#: InvenTree/models.py:199
msgid "Invalid attachment directory"
-msgstr ""
+msgstr "תיקיית קובץ שגויה"
#: InvenTree/models.py:209
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
-msgstr ""
+msgstr "שם הקובץ מכיל תו '{c}' שאינו חוקי"
#: InvenTree/models.py:212
msgid "Filename missing extension"
@@ -191,146 +192,146 @@ msgstr ""
#: InvenTree/models.py:226
msgid "Error renaming file"
-msgstr ""
+msgstr "שגיאה בשינוי שם פריט"
#: InvenTree/models.py:261
msgid "Invalid choice"
-msgstr ""
+msgstr "בחירה שגויה"
-#: InvenTree/models.py:277 InvenTree/models.py:278 company/models.py:415
-#: label/models.py:112 part/models.py:772 part/models.py:2442
-#: plugin/models.py:40 report/models.py:181
+#: InvenTree/models.py:277 InvenTree/models.py:278 common/models.py:1438
+#: company/models.py:415 label/models.py:112 part/models.py:774
+#: part/models.py:2449 plugin/models.py:40 report/models.py:181
#: templates/InvenTree/settings/mixins/urls.html:13
-#: templates/InvenTree/settings/plugin.html:47
-#: templates/InvenTree/settings/plugin.html:124
+#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin.html:125
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:279
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:561
-#: templates/js/translated/part.js:700 templates/js/translated/part.js:1624
-#: templates/js/translated/stock.js:2327
+#: templates/InvenTree/settings/settings.html:282
+#: templates/js/translated/company.js:641 templates/js/translated/part.js:567
+#: templates/js/translated/part.js:706 templates/js/translated/part.js:1631
+#: templates/js/translated/stock.js:2485
msgid "Name"
-msgstr ""
+msgstr "שם"
-#: InvenTree/models.py:284 build/models.py:207
+#: InvenTree/models.py:284 build/models.py:209
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:73 label/models.py:119
-#: order/models.py:122 part/models.py:795 part/templates/part/category.html:74
+#: order/models.py:125 part/models.py:797 part/templates/part/category.html:74
#: part/templates/part/part_base.html:163
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:93
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:327 templates/js/translated/bom.js:540
+#: templates/js/translated/bom.js:339 templates/js/translated/bom.js:552
#: templates/js/translated/build.js:1682 templates/js/translated/company.js:345
#: templates/js/translated/company.js:551
#: templates/js/translated/company.js:840 templates/js/translated/order.js:836
#: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258
-#: templates/js/translated/part.js:620 templates/js/translated/part.js:992
-#: templates/js/translated/part.js:1077 templates/js/translated/part.js:1247
-#: templates/js/translated/part.js:1643 templates/js/translated/part.js:1712
-#: templates/js/translated/stock.js:1569 templates/js/translated/stock.js:2339
-#: templates/js/translated/stock.js:2384
+#: templates/js/translated/part.js:626 templates/js/translated/part.js:999
+#: templates/js/translated/part.js:1084 templates/js/translated/part.js:1254
+#: templates/js/translated/part.js:1650 templates/js/translated/part.js:1719
+#: templates/js/translated/stock.js:1577 templates/js/translated/stock.js:2314
+#: templates/js/translated/stock.js:2497 templates/js/translated/stock.js:2542
msgid "Description"
-msgstr ""
+msgstr "תיאור"
#: InvenTree/models.py:285
msgid "Description (optional)"
-msgstr ""
+msgstr "תיאור (לא חובה)"
#: InvenTree/models.py:293
msgid "parent"
-msgstr ""
+msgstr "מקור"
-#: InvenTree/serializers.py:65 part/models.py:2727
+#: InvenTree/serializers.py:65 part/models.py:2734
msgid "Must be a valid number"
-msgstr ""
+msgstr "המספר חייב להיות תקין"
#: InvenTree/serializers.py:299
msgid "Filename"
-msgstr ""
+msgstr "שם קובץ"
+
+#: InvenTree/settings.py:661
+msgid "German"
+msgstr "גרמנית"
+
+#: InvenTree/settings.py:662
+msgid "Greek"
+msgstr "יוונית"
#: InvenTree/settings.py:663
-msgid "German"
-msgstr ""
+msgid "English"
+msgstr "אנגלית"
#: InvenTree/settings.py:664
-msgid "Greek"
-msgstr ""
+msgid "Spanish"
+msgstr "ספרדית"
#: InvenTree/settings.py:665
-msgid "English"
-msgstr ""
+msgid "Spanish (Mexican)"
+msgstr "ספרדית (מקסיקנית)"
#: InvenTree/settings.py:666
-msgid "Spanish"
-msgstr ""
+msgid "French"
+msgstr "צרפתית"
#: InvenTree/settings.py:667
-msgid "Spanish (Mexican)"
-msgstr ""
+msgid "Hebrew"
+msgstr "עברית"
#: InvenTree/settings.py:668
-msgid "French"
-msgstr ""
+msgid "Italian"
+msgstr "איטלקית"
#: InvenTree/settings.py:669
-msgid "Hebrew"
-msgstr ""
+msgid "Japanese"
+msgstr "יפנית"
#: InvenTree/settings.py:670
-msgid "Italian"
-msgstr ""
+msgid "Korean"
+msgstr "קוריאנית"
#: InvenTree/settings.py:671
-msgid "Japanese"
-msgstr ""
+msgid "Dutch"
+msgstr "הולנדית"
#: InvenTree/settings.py:672
-msgid "Korean"
-msgstr ""
+msgid "Norwegian"
+msgstr "נורווגית"
#: InvenTree/settings.py:673
-msgid "Dutch"
-msgstr ""
+msgid "Polish"
+msgstr "פולנית"
#: InvenTree/settings.py:674
-msgid "Norwegian"
-msgstr ""
+msgid "Portugese"
+msgstr "פורטוגזית"
#: InvenTree/settings.py:675
-msgid "Polish"
-msgstr ""
+msgid "Russian"
+msgstr "רוסית"
#: InvenTree/settings.py:676
-msgid "Portugese"
-msgstr ""
+msgid "Swedish"
+msgstr "שוודית"
#: InvenTree/settings.py:677
-msgid "Russian"
-msgstr ""
+msgid "Thai"
+msgstr "תאילנדית"
#: InvenTree/settings.py:678
-msgid "Swedish"
-msgstr ""
+msgid "Turkish"
+msgstr "טורקית"
#: InvenTree/settings.py:679
-msgid "Thai"
-msgstr ""
+msgid "Vietnamese"
+msgstr "ווייטנאמית"
#: InvenTree/settings.py:680
-msgid "Turkish"
-msgstr ""
-
-#: InvenTree/settings.py:681
-msgid "Vietnamese"
-msgstr ""
-
-#: InvenTree/settings.py:682
msgid "Chinese"
-msgstr ""
+msgstr "סינית"
#: InvenTree/status.py:94
msgid "Background worker check failed"
@@ -347,57 +348,57 @@ msgstr ""
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:313
msgid "Pending"
-msgstr ""
+msgstr "בהמתנה"
#: InvenTree/status_codes.py:102
msgid "Placed"
-msgstr ""
+msgstr "מוקם"
#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:319
#: order/templates/order/order_base.html:128
#: order/templates/order/sales_order_base.html:132
msgid "Complete"
-msgstr ""
+msgstr "הושלם"
#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
#: InvenTree/status_codes.py:318
msgid "Cancelled"
-msgstr ""
+msgstr "מבוטל"
#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
#: InvenTree/status_codes.py:187
msgid "Lost"
-msgstr ""
+msgstr "אבד"
#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
#: InvenTree/status_codes.py:189
msgid "Returned"
-msgstr ""
+msgstr "הוחזר"
-#: InvenTree/status_codes.py:143 order/models.py:941
+#: InvenTree/status_codes.py:143 order/models.py:961
#: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255
msgid "Shipped"
-msgstr ""
+msgstr "נשלח"
#: InvenTree/status_codes.py:183
msgid "OK"
-msgstr ""
+msgstr "מצב טוב"
#: InvenTree/status_codes.py:184
msgid "Attention needed"
-msgstr ""
+msgstr "דרושה תשומת לב"
#: InvenTree/status_codes.py:185
msgid "Damaged"
-msgstr ""
+msgstr "פגום"
#: InvenTree/status_codes.py:186
msgid "Destroyed"
-msgstr ""
+msgstr "הרוס"
#: InvenTree/status_codes.py:188
msgid "Rejected"
-msgstr ""
+msgstr "נדחה"
#: InvenTree/status_codes.py:272
msgid "Legacy stock tracking entry"
@@ -429,7 +430,7 @@ msgstr ""
#: InvenTree/status_codes.py:283
msgid "Location changed"
-msgstr ""
+msgstr "מיקום שונה"
#: InvenTree/status_codes.py:285
msgid "Installed into assembly"
@@ -455,17 +456,17 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2064
+#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2072
msgid "Merged stock items"
msgstr ""
#: InvenTree/status_codes.py:296 templates/js/translated/table_filters.js:213
msgid "Sent to customer"
-msgstr ""
+msgstr "נשלח ללקוח"
#: InvenTree/status_codes.py:297
msgid "Returned from customer"
-msgstr ""
+msgstr "הוחזר מלקוח"
#: InvenTree/status_codes.py:299
msgid "Build order output created"
@@ -481,11 +482,11 @@ msgstr ""
#: InvenTree/status_codes.py:317
msgid "Production"
-msgstr ""
+msgstr "ייצור"
#: InvenTree/validators.py:23
msgid "Not a valid currency code"
-msgstr ""
+msgstr "קוד מטבע לא מאושר"
#: InvenTree/validators.py:51
msgid "Invalid character in part name"
@@ -521,7 +522,7 @@ msgstr ""
#: InvenTree/views.py:538
msgid "Delete Item"
-msgstr ""
+msgstr "מחק פריט"
#: InvenTree/views.py:587
msgid "Check box to confirm item deletion"
@@ -529,70 +530,70 @@ msgstr ""
#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21
msgid "Edit User Information"
-msgstr ""
+msgstr "ערוך מידע אודות המשתמש"
#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19
msgid "Set Password"
-msgstr ""
+msgstr "הגדר סיסמא"
#: InvenTree/views.py:632
msgid "Password fields must match"
-msgstr ""
+msgstr "הסיסמאות מוכרחות להיות תואמות"
#: InvenTree/views.py:883 templates/navbar.html:126
msgid "System Information"
-msgstr ""
+msgstr "מידע אודות המערכת"
-#: barcodes/api.py:54 barcodes/api.py:151
+#: barcodes/api.py:54 barcodes/api.py:152
msgid "Must provide barcode_data parameter"
-msgstr ""
+msgstr "הפרמטר barcode_data מוכרח להיות תקין"
-#: barcodes/api.py:127
+#: barcodes/api.py:128
msgid "No match found for barcode data"
msgstr ""
-#: barcodes/api.py:129
+#: barcodes/api.py:130
msgid "Match found for barcode data"
msgstr ""
-#: barcodes/api.py:154
+#: barcodes/api.py:155
msgid "Must provide stockitem parameter"
msgstr ""
-#: barcodes/api.py:161
+#: barcodes/api.py:162
msgid "No matching stock item found"
msgstr ""
-#: barcodes/api.py:191
+#: barcodes/api.py:193
msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:195
+#: barcodes/api.py:197
msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:199
+#: barcodes/api.py:201
msgid "Barcode already matches Part"
msgstr ""
-#: barcodes/api.py:205 barcodes/api.py:217
+#: barcodes/api.py:207 barcodes/api.py:219
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:223
+#: barcodes/api.py:225
msgid "Barcode associated with Stock Item"
msgstr ""
-#: build/forms.py:36 build/models.py:1286
+#: build/forms.py:36 build/models.py:1293
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:35 common/models.py:1253
+#: build/templates/build/detail.html:35 common/models.py:1263
#: company/forms.py:42 company/templates/company/supplier_part.html:251
-#: order/models.py:796 order/models.py:1207 order/serializers.py:810
+#: order/models.py:805 order/models.py:1229 order/serializers.py:816
#: order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:145
-#: part/forms.py:161 part/forms.py:177 part/models.py:2629
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144
+#: part/forms.py:160 part/forms.py:176 part/models.py:2636
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:962 part/templates/part/detail.html:1048
+#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -603,7 +604,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:181
#: stock/templates/stock/item_base.html:262
#: stock/templates/stock/item_base.html:270
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:555
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:567
#: templates/js/translated/build.js:295 templates/js/translated/build.js:495
#: templates/js/translated/build.js:689 templates/js/translated/build.js:699
#: templates/js/translated/build.js:1075 templates/js/translated/build.js:1422
@@ -611,23 +612,23 @@ msgstr ""
#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056
#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859
#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036
-#: templates/js/translated/order.js:2150 templates/js/translated/part.js:900
-#: templates/js/translated/part.js:1855 templates/js/translated/part.js:1978
-#: templates/js/translated/part.js:2056 templates/js/translated/stock.js:383
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:750
-#: templates/js/translated/stock.js:2519 templates/js/translated/stock.js:2621
+#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906
+#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985
+#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:391
+#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758
+#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2779
msgid "Quantity"
-msgstr ""
+msgstr "כמות"
#: build/forms.py:37
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:41 order/serializers.py:814 stock/forms.py:81
-#: stock/serializers.py:314 templates/js/translated/stock.js:230
-#: templates/js/translated/stock.js:384
+#: build/forms.py:41 order/serializers.py:820 stock/forms.py:81
+#: stock/serializers.py:314 templates/js/translated/stock.js:238
+#: templates/js/translated/stock.js:392
msgid "Serial Numbers"
-msgstr ""
+msgstr "מספרים סידוריים"
#: build/forms.py:43
msgid "Enter serial numbers for build outputs"
@@ -649,18 +650,18 @@ msgstr ""
msgid "Confirm build cancellation"
msgstr ""
-#: build/models.py:133
+#: build/models.py:135
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:139 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:457
+#: templates/js/translated/build.js:457 templates/js/translated/stock.js:2290
msgid "Build Order"
msgstr ""
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:140 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:92
#: order/templates/order/so_sidebar.html:13
@@ -670,40 +671,40 @@ msgstr ""
msgid "Build Orders"
msgstr ""
-#: build/models.py:198
+#: build/models.py:200
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:210 order/models.py:536
-#: order/models.py:803 part/models.py:2638
+#: build/models.py:201 order/models.py:213 order/models.py:541
+#: order/models.py:812 part/models.py:2645
#: 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/translated/bom.js:547 templates/js/translated/build.js:1179
+#: templates/js/translated/bom.js:559 templates/js/translated/build.js:1179
#: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144
msgid "Reference"
-msgstr ""
+msgstr "מקט"
-#: build/models.py:210
+#: build/models.py:212
msgid "Brief description of the build"
-msgstr ""
+msgstr "תיאור קצר אודות הבנייה"
-#: build/models.py:219 build/templates/build/build_base.html:164
+#: build/models.py:221 build/templates/build/build_base.html:164
#: build/templates/build/detail.html:88
msgid "Parent Build"
-msgstr ""
+msgstr "מקור הבנייה"
-#: build/models.py:220
+#: build/models.py:222
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:225 build/templates/build/build_base.html:77
+#: build/models.py:227 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
-#: order/models.py:856 order/models.py:930
-#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
-#: part/models.py:2204 part/models.py:2220 part/models.py:2239
-#: part/models.py:2256 part/models.py:2358 part/models.py:2480
-#: part/models.py:2613 part/models.py:2920 part/serializers.py:658
+#: order/models.py:876 order/models.py:950
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359
+#: part/models.py:2211 part/models.py:2227 part/models.py:2246
+#: part/models.py:2263 part/models.py:2365 part/models.py:2487
+#: part/models.py:2620 part/models.py:2927 part/serializers.py:658
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -713,205 +714,205 @@ msgstr ""
#: templates/InvenTree/search.html:80
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
-#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:326
-#: templates/js/translated/bom.js:505 templates/js/translated/build.js:680
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:338
+#: templates/js/translated/bom.js:517 templates/js/translated/build.js:680
#: templates/js/translated/build.js:1048 templates/js/translated/build.js:1419
#: templates/js/translated/build.js:1687 templates/js/translated/company.js:492
#: templates/js/translated/company.js:749 templates/js/translated/order.js:84
#: templates/js/translated/order.js:586 templates/js/translated/order.js:1004
#: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933
-#: templates/js/translated/order.js:2128 templates/js/translated/part.js:977
-#: templates/js/translated/part.js:1058 templates/js/translated/part.js:1225
-#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:719
-#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1526
-#: templates/js/translated/stock.js:2609
+#: templates/js/translated/order.js:2128 templates/js/translated/part.js:984
+#: templates/js/translated/part.js:1065 templates/js/translated/part.js:1232
+#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727
+#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1534
+#: templates/js/translated/stock.js:2767
msgid "Part"
-msgstr ""
+msgstr "רכיב"
-#: build/models.py:233
+#: build/models.py:235
msgid "Select part to build"
-msgstr ""
+msgstr "בחר רכיב לבנייה"
-#: build/models.py:238
+#: build/models.py:240
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:242
+#: build/models.py:244
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 templates/js/translated/build.js:1407
+#: build/models.py:249 templates/js/translated/build.js:1407
#: templates/js/translated/order.js:1564
msgid "Source Location"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:256
+#: build/models.py:258
msgid "Destination Location"
msgstr ""
-#: build/models.py:260
+#: build/models.py:262
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:264
+#: build/models.py:266
msgid "Build Quantity"
-msgstr ""
+msgstr "כמות בניה"
-#: build/models.py:267
+#: build/models.py:269
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:271
+#: build/models.py:273
msgid "Completed items"
msgstr ""
-#: build/models.py:273
+#: build/models.py:275
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:277 part/templates/part/part_base.html:234
+#: build/models.py:279 part/templates/part/part_base.html:234
msgid "Build Status"
msgstr ""
-#: build/models.py:281
+#: build/models.py:283
msgid "Build status code"
msgstr ""
-#: build/models.py:285 stock/models.py:531
+#: build/models.py:287 stock/models.py:533
msgid "Batch Code"
msgstr ""
-#: build/models.py:289
+#: build/models.py:291
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:126 part/models.py:967
+#: build/models.py:294 order/models.py:129 part/models.py:969
#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:558
+#: build/models.py:298 order/models.py:563
msgid "Target completion date"
msgstr ""
-#: build/models.py:297
+#: build/models.py:299
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:252
+#: build/models.py:302 order/models.py:255
#: templates/js/translated/build.js:1758
msgid "Completion Date"
msgstr ""
-#: build/models.py:306
+#: build/models.py:308
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:1729
+#: build/models.py:316 templates/js/translated/build.js:1729
msgid "Issued by"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:323 build/templates/build/build_base.html:185
-#: build/templates/build/detail.html:116 order/models.py:140
+#: build/models.py:325 build/templates/build/build_base.html:185
+#: build/templates/build/detail.html:116 order/models.py:143
#: order/templates/order/order_base.html:170
-#: order/templates/order/sales_order_base.html:182 part/models.py:971
+#: order/templates/order/sales_order_base.html:182 part/models.py:973
#: report/templates/report/inventree_build_order_base.html:159
#: templates/js/translated/build.js:1741 templates/js/translated/order.js:864
msgid "Responsible"
msgstr ""
-#: build/models.py:324
+#: build/models.py:326
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:329 build/templates/build/detail.html:102
+#: build/models.py:331 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:525
+#: part/templates/part/part_base.html:354 stock/models.py:527
#: stock/templates/stock/item_base.html:373
msgid "External Link"
msgstr ""
-#: build/models.py:334 build/serializers.py:201
+#: build/models.py:336 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
-#: order/models.py:144 order/models.py:805 order/models.py:1051
+#: order/models.py:147 order/models.py:814 order/models.py:1071
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:17 part/models.py:956
-#: part/templates/part/detail.html:120 part/templates/part/part_sidebar.html:50
+#: order/templates/order/so_sidebar.html:17 part/models.py:958
+#: part/templates/part/detail.html:137 part/templates/part/part_sidebar.html:54
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:597
-#: stock/models.py:1867 stock/models.py:1973 stock/serializers.py:332
-#: stock/serializers.py:639 stock/serializers.py:737 stock/serializers.py:869
-#: stock/templates/stock/stock_sidebar.html:21
-#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:711
+#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:599
+#: stock/models.py:1895 stock/models.py:2001 stock/serializers.py:332
+#: stock/serializers.py:640 stock/serializers.py:738 stock/serializers.py:870
+#: stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:723
#: templates/js/translated/company.js:845 templates/js/translated/order.js:1149
#: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280
-#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1795
+#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1803
msgid "Notes"
msgstr ""
-#: build/models.py:335
+#: build/models.py:337
msgid "Extra build notes"
msgstr ""
-#: build/models.py:710
+#: build/models.py:717
msgid "No build output specified"
msgstr ""
-#: build/models.py:713
+#: build/models.py:720
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:716
+#: build/models.py:723
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1108
+#: build/models.py:1115
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1117
+#: build/models.py:1124
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1127
+#: build/models.py:1134
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1133 order/models.py:1167
+#: build/models.py:1140 order/models.py:1189
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1139
+#: build/models.py:1146
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1196
+#: build/models.py:1203
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1256 stock/templates/stock/item_base.html:345
+#: build/models.py:1263 stock/templates/stock/item_base.html:345
#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1660
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1257
+#: build/models.py:1264
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1273 build/serializers.py:388 order/serializers.py:690
-#: order/serializers.py:708 stock/serializers.py:577 stock/serializers.py:695
+#: build/models.py:1280 build/serializers.py:388 order/serializers.py:696
+#: order/serializers.py:714 stock/serializers.py:578 stock/serializers.py:696
#: stock/templates/stock/item_base.html:9
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:367
@@ -920,24 +921,24 @@ msgstr ""
#: templates/js/translated/order.js:85 templates/js/translated/order.js:1577
#: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837
#: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030
-#: templates/js/translated/stock.js:555 templates/js/translated/stock.js:720
-#: templates/js/translated/stock.js:2470
+#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728
+#: templates/js/translated/stock.js:2628
msgid "Stock Item"
msgstr ""
-#: build/models.py:1274
+#: build/models.py:1281
msgid "Source stock item"
msgstr ""
-#: build/models.py:1287
+#: build/models.py:1294
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1295
+#: build/models.py:1302
msgid "Install into"
msgstr ""
-#: build/models.py:1296
+#: build/models.py:1303
msgid "Destination stock item"
msgstr ""
@@ -962,16 +963,16 @@ msgid "This build output is not fully allocated"
msgstr ""
#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294
-#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:730
-#: stock/serializers.py:971 stock/templates/stock/item_base.html:313
+#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:731
+#: stock/serializers.py:972 stock/templates/stock/item_base.html:313
#: templates/js/translated/barcode.js:384
#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:480
#: templates/js/translated/build.js:1087 templates/js/translated/order.js:508
#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955
#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044
-#: templates/js/translated/part.js:179 templates/js/translated/stock.js:556
-#: templates/js/translated/stock.js:721 templates/js/translated/stock.js:928
-#: templates/js/translated/stock.js:1676 templates/js/translated/stock.js:2411
+#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564
+#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936
+#: templates/js/translated/stock.js:1684 templates/js/translated/stock.js:2569
msgid "Location"
msgstr ""
@@ -980,12 +981,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:137
-#: build/templates/build/detail.html:63 order/models.py:552
+#: build/templates/build/detail.html:63 order/models.py:557
#: order/serializers.py:247 stock/templates/stock/item_base.html:187
#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1716
#: templates/js/translated/order.js:591 templates/js/translated/order.js:840
-#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1651
-#: templates/js/translated/stock.js:2488 templates/js/translated/stock.js:2637
+#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:2646 templates/js/translated/stock.js:2795
msgid "Status"
msgstr ""
@@ -1021,8 +1022,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:313 build/serializers.py:362 part/models.py:2753
-#: part/models.py:2912
+#: build/serializers.py:313 build/serializers.py:362 part/models.py:2760
+#: part/models.py:2919
msgid "BOM Item"
msgstr ""
@@ -1038,16 +1039,16 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:394 stock/serializers.py:584
+#: build/serializers.py:394 stock/serializers.py:585
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:408 order/models.py:277 order/serializers.py:240
-#: stock/models.py:365 stock/models.py:1077 stock/serializers.py:305
+#: build/serializers.py:408 order/models.py:280 order/serializers.py:240
+#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:450 order/serializers.py:741
+#: build/serializers.py:450 order/serializers.py:747
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1060,7 +1061,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:491 order/serializers.py:984
+#: build/serializers.py:491 order/serializers.py:990
msgid "Allocation items must be provided"
msgstr ""
@@ -1164,13 +1165,13 @@ msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:171
-#: build/templates/build/detail.html:95 order/models.py:927
-#: order/models.py:1023 order/templates/order/sales_order_base.html:9
+#: build/templates/build/detail.html:95 order/models.py:947
+#: order/models.py:1043 order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/order.js:1218
+#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2304
msgid "Sales Order"
msgstr ""
@@ -1224,7 +1225,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:50 order/models.py:878 stock/forms.py:136
+#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:136
#: templates/js/translated/order.js:592 templates/js/translated/order.js:1138
msgid "Destination"
msgstr ""
@@ -1239,7 +1240,7 @@ msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:331
-#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2644
+#: templates/js/translated/stock.js:1673 templates/js/translated/stock.js:2802
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:238
msgid "Batch"
@@ -1343,9 +1344,9 @@ msgstr ""
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:107
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:196
-#: part/templates/part/part_sidebar.html:48 stock/templates/stock/item.html:95
-#: stock/templates/stock/stock_sidebar.html:19
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:213
+#: part/templates/part/part_sidebar.html:52 stock/templates/stock/item.html:112
+#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr ""
@@ -1360,8 +1361,8 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:108
#: order/templates/order/sales_order_detail.html:127
#: order/templates/order/sales_order_detail.html:186
-#: part/templates/part/detail.html:124 stock/templates/stock/item.html:115
-#: stock/templates/stock/item.html:205
+#: part/templates/part/detail.html:141 stock/templates/stock/item.html:132
+#: stock/templates/stock/item.html:235
msgid "Edit Notes"
msgstr ""
@@ -1373,7 +1374,7 @@ msgstr ""
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:303
+#: build/templates/build/index.html:18 part/templates/part/detail.html:320
msgid "New Build Order"
msgstr ""
@@ -1453,23 +1454,23 @@ msgstr ""
msgid "Delete Build Order"
msgstr ""
-#: common/files.py:67
+#: common/files.py:65
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
-#: common/files.py:69
+#: common/files.py:67
msgid "Error reading file (invalid encoding)"
msgstr ""
-#: common/files.py:74
+#: common/files.py:72
msgid "Error reading file (invalid format)"
msgstr ""
-#: common/files.py:76
+#: common/files.py:74
msgid "Error reading file (incorrect dimension)"
msgstr ""
-#: common/files.py:78
+#: common/files.py:76
msgid "Error reading file (data could be corrupted)"
msgstr ""
@@ -1490,740 +1491,828 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:344 common/models.py:998 common/models.py:1206
-msgid "Settings key (must be unique - case insensitive"
+#: common/models.py:352
+msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:346
+#: common/models.py:354
msgid "Settings value"
msgstr ""
-#: common/models.py:380
+#: common/models.py:388
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:400
+#: common/models.py:408
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:411
+#: common/models.py:419
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:434
+#: common/models.py:442
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:553
+#: common/models.py:561
msgid "No group"
msgstr ""
-#: common/models.py:595
+#: common/models.py:603
msgid "Restart required"
msgstr ""
-#: common/models.py:596
+#: common/models.py:604
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:603
+#: common/models.py:611
msgid "InvenTree Instance Name"
msgstr ""
-#: common/models.py:605
+#: common/models.py:613
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:609
+#: common/models.py:617
msgid "Use instance name"
msgstr ""
-#: common/models.py:610
+#: common/models.py:618
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:616 company/models.py:100 company/models.py:101
+#: common/models.py:624 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr ""
-#: common/models.py:617
+#: common/models.py:625
msgid "Internal company name"
msgstr ""
-#: common/models.py:622
+#: common/models.py:630
msgid "Base URL"
msgstr ""
-#: common/models.py:623
+#: common/models.py:631
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:629
+#: common/models.py:637
msgid "Default Currency"
msgstr ""
-#: common/models.py:630
+#: common/models.py:638
msgid "Default currency"
msgstr ""
-#: common/models.py:636
+#: common/models.py:644
msgid "Download from URL"
msgstr ""
-#: common/models.py:637
+#: common/models.py:645
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:643 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:651 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
-#: common/models.py:644
+#: common/models.py:652
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:650
+#: common/models.py:658
msgid "IPN Regex"
msgstr ""
-#: common/models.py:651
+#: common/models.py:659
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:655
+#: common/models.py:663
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:656
+#: common/models.py:664
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:662
+#: common/models.py:670
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:663
+#: common/models.py:671
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:669
+#: common/models.py:677
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:670
+#: common/models.py:678
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:676
+#: common/models.py:684
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:677
+#: common/models.py:685
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:683
+#: common/models.py:691
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:684
+#: common/models.py:692
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:690
+#: common/models.py:698
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:691
+#: common/models.py:699
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:697 part/models.py:2482 report/models.py:187
+#: common/models.py:705 part/models.py:2489 report/models.py:187
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:422
msgid "Template"
msgstr ""
-#: common/models.py:698
+#: common/models.py:706
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:704 part/models.py:919 templates/js/translated/bom.js:1068
+#: common/models.py:712 part/models.py:921 templates/js/translated/bom.js:1082
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:434
msgid "Assembly"
msgstr ""
-#: common/models.py:705
+#: common/models.py:713
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:711 part/models.py:925
+#: common/models.py:719 part/models.py:927
#: templates/js/translated/table_filters.js:438
msgid "Component"
msgstr ""
-#: common/models.py:712
+#: common/models.py:720
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:718 part/models.py:936
+#: common/models.py:726 part/models.py:938
msgid "Purchaseable"
msgstr ""
-#: common/models.py:719
+#: common/models.py:727
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:725 part/models.py:941
+#: common/models.py:733 part/models.py:943
#: templates/js/translated/table_filters.js:446
msgid "Salable"
msgstr ""
-#: common/models.py:726
+#: common/models.py:734
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:732 part/models.py:931
+#: common/models.py:740 part/models.py:933
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
#: templates/js/translated/table_filters.js:450
msgid "Trackable"
msgstr ""
-#: common/models.py:733
+#: common/models.py:741
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:739 part/models.py:951
+#: common/models.py:747 part/models.py:953
#: part/templates/part/part_base.html:147
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr ""
-#: common/models.py:740
+#: common/models.py:748
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:746
+#: common/models.py:754
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:747
+#: common/models.py:755
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:753
+#: common/models.py:761
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:754
+#: common/models.py:762
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:765
+#: common/models.py:773
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:766
+#: common/models.py:774
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:772
+#: common/models.py:780
msgid "Show related parts"
msgstr ""
-#: common/models.py:773
+#: common/models.py:781
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:779
+#: common/models.py:787
msgid "Create initial stock"
msgstr ""
-#: common/models.py:780
+#: common/models.py:788
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:786
+#: common/models.py:794
msgid "Internal Prices"
msgstr ""
-#: common/models.py:787
+#: common/models.py:795
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:793
+#: common/models.py:801
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:794
+#: common/models.py:802
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:800
+#: common/models.py:808
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:801
+#: common/models.py:809
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:808
+#: common/models.py:816
msgid "Enable Reports"
msgstr ""
-#: common/models.py:809
+#: common/models.py:817
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:815 templates/stats.html:25
+#: common/models.py:823 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:816
+#: common/models.py:824
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:822
+#: common/models.py:830
msgid "Page Size"
msgstr ""
-#: common/models.py:823
+#: common/models.py:831
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:833
+#: common/models.py:841
msgid "Test Reports"
msgstr ""
-#: common/models.py:834
+#: common/models.py:842
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:840
+#: common/models.py:848
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:841
+#: common/models.py:849
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:847
+#: common/models.py:855
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:848
+#: common/models.py:856
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:854
+#: common/models.py:862
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:855
+#: common/models.py:863
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:857
+#: common/models.py:865
msgid "days"
msgstr ""
-#: common/models.py:862
+#: common/models.py:870
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:863
+#: common/models.py:871
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:869
+#: common/models.py:877
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:870
+#: common/models.py:878
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:876
-msgid "Group by Part"
-msgstr ""
-
-#: common/models.py:877
-msgid "Group stock items by part reference in table views"
-msgstr ""
-
-#: common/models.py:883
+#: common/models.py:884
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:884
+#: common/models.py:885
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:889
+#: common/models.py:890
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:890
+#: common/models.py:891
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:894
+#: common/models.py:895
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:895
+#: common/models.py:896
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:900
+#: common/models.py:901
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:901
+#: common/models.py:902
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:907
+#: common/models.py:908
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:908
+#: common/models.py:909
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:913
+#: common/models.py:914
msgid "Enable registration"
msgstr ""
-#: common/models.py:914
+#: common/models.py:915
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:919
+#: common/models.py:920
msgid "Enable SSO"
msgstr ""
-#: common/models.py:920
+#: common/models.py:921
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:925
+#: common/models.py:926
msgid "Email required"
msgstr ""
-#: common/models.py:926
+#: common/models.py:927
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:931
+#: common/models.py:932
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:932
+#: common/models.py:933
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:937
+#: common/models.py:938
msgid "Mail twice"
msgstr ""
-#: common/models.py:938
+#: common/models.py:939
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:943
+#: common/models.py:944
msgid "Password twice"
msgstr ""
-#: common/models.py:944
+#: common/models.py:945
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:949
+#: common/models.py:950
msgid "Group on signup"
msgstr ""
-#: common/models.py:950
+#: common/models.py:951
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:955
+#: common/models.py:956
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:956
+#: common/models.py:957
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:961
+#: common/models.py:964
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:962
+#: common/models.py:965
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:968
+#: common/models.py:971
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:969
+#: common/models.py:972
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:975
+#: common/models.py:978
msgid "Enable app integration"
msgstr ""
-#: common/models.py:976
+#: common/models.py:979
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:982
+#: common/models.py:985
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:983
+#: common/models.py:986
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1029
+#: common/models.py:992
+msgid "Enable event integration"
+msgstr ""
+
+#: common/models.py:993
+msgid "Enable plugins to respond to internal events"
+msgstr ""
+
+#: common/models.py:1008 common/models.py:1216
+msgid "Settings key (must be unique - case insensitive"
+msgstr ""
+
+#: common/models.py:1039
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1030
+#: common/models.py:1040
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1035
+#: common/models.py:1045
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1036
+#: common/models.py:1046
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1041
+#: common/models.py:1051
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1042
+#: common/models.py:1052
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1047
+#: common/models.py:1057
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1048
+#: common/models.py:1058
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1054
+#: common/models.py:1064
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1055
+#: common/models.py:1065
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1070
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1061
+#: common/models.py:1071
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1066
+#: common/models.py:1076
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1067
+#: common/models.py:1077
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1072
+#: common/models.py:1082
msgid "Show low stock"
msgstr ""
-#: common/models.py:1073
+#: common/models.py:1083
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1078
+#: common/models.py:1088
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1079
+#: common/models.py:1089
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1084
+#: common/models.py:1094
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1085
+#: common/models.py:1095
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1090
+#: common/models.py:1100
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1091
+#: common/models.py:1101
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1096
+#: common/models.py:1106
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1097
+#: common/models.py:1107
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1102
+#: common/models.py:1112
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1103
+#: common/models.py:1113
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1108
+#: common/models.py:1118
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1109
+#: common/models.py:1119
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1114
+#: common/models.py:1124
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1115
+#: common/models.py:1125
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1120
+#: common/models.py:1130
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1121
+#: common/models.py:1131
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1136
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1127
+#: common/models.py:1137
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1142
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1143
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1149
msgid "Inline label display"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1150
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1156
msgid "Inline report display"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1157
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1163
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1164
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1170
msgid "Search Show Stock"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1171
msgid "Display stock levels in search preview window"
msgstr ""
-#: common/models.py:1167
+#: common/models.py:1177
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1178
msgid "Hide inactive parts in search preview window"
msgstr ""
-#: common/models.py:1174
+#: common/models.py:1184
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1175
+#: common/models.py:1185
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1181
+#: common/models.py:1191
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1182
+#: common/models.py:1192
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1188
+#: common/models.py:1198
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1199
msgid "InvenTree navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1254 company/forms.py:43
+#: common/models.py:1264 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1261 company/serializers.py:264
+#: common/models.py:1271 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:909 templates/js/translated/part.js:1860
+#: templates/js/translated/part.js:915 templates/js/translated/part.js:1867
msgid "Price"
msgstr ""
-#: common/models.py:1262
+#: common/models.py:1272
msgid "Unit price at specified quantity"
msgstr ""
+#: common/models.py:1429 common/models.py:1568
+msgid "Endpoint"
+msgstr ""
+
+#: common/models.py:1430
+msgid "Endpoint at which this webhook is received"
+msgstr ""
+
+#: common/models.py:1439
+msgid "Name for this webhook"
+msgstr ""
+
+#: common/models.py:1444 part/models.py:948 plugin/models.py:46
+#: templates/js/translated/table_filters.js:34
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:295
+#: templates/js/translated/table_filters.js:417
+msgid "Active"
+msgstr ""
+
+#: common/models.py:1445
+msgid "Is this webhook active"
+msgstr ""
+
+#: common/models.py:1459
+msgid "Token"
+msgstr ""
+
+#: common/models.py:1460
+msgid "Token for access"
+msgstr ""
+
+#: common/models.py:1467
+msgid "Secret"
+msgstr ""
+
+#: common/models.py:1468
+msgid "Shared secret for HMAC"
+msgstr ""
+
+#: common/models.py:1535
+msgid "Message ID"
+msgstr ""
+
+#: common/models.py:1536
+msgid "Unique identifier for this message"
+msgstr ""
+
+#: common/models.py:1544
+msgid "Host"
+msgstr ""
+
+#: common/models.py:1545
+msgid "Host from which this message was received"
+msgstr ""
+
+#: common/models.py:1552
+msgid "Header"
+msgstr ""
+
+#: common/models.py:1553
+msgid "Header of this message"
+msgstr ""
+
+#: common/models.py:1559
+msgid "Body"
+msgstr ""
+
+#: common/models.py:1560
+msgid "Body of this message"
+msgstr ""
+
+#: common/models.py:1569
+msgid "Endpoint on which this message was received"
+msgstr ""
+
+#: common/models.py:1574
+msgid "Worked on"
+msgstr ""
+
+#: common/models.py:1575
+msgid "Was the work on this message finished?"
+msgstr ""
+
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
#: part/templates/part/bom_upload/upload_file.html:52
-#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
-#: part/views.py:764
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:213
+#: part/views.py:773
msgid "Upload File"
msgstr ""
#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
-#: part/views.py:765
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:214
+#: part/views.py:774
msgid "Match Fields"
msgstr ""
@@ -2315,7 +2404,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:838
+#: company/models.py:139 part/models.py:840
msgid "Image"
msgstr ""
@@ -2352,8 +2441,8 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:469
-#: stock/templates/stock/item_base.html:142
+#: company/models.py:320 company/models.py:535 stock/models.py:471
+#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:328
msgid "Base Part"
msgstr ""
@@ -2380,7 +2469,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:818 templates/js/translated/order.js:1038
-#: templates/js/translated/part.js:245 templates/js/translated/part.js:889
+#: templates/js/translated/part.js:245 templates/js/translated/part.js:895
msgid "MPN"
msgstr ""
@@ -2409,8 +2498,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1960 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:709 templates/js/translated/stock.js:1296
+#: stock/models.py:1988 templates/js/translated/company.js:647
+#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1304
msgid "Value"
msgstr ""
@@ -2418,10 +2507,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:913 part/models.py:2450
+#: company/models.py:429 part/models.py:915 part/models.py:2457
#: part/templates/part/part_base.html:288
-#: templates/InvenTree/settings/settings.html:284
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:715
+#: templates/InvenTree/settings/settings.html:287
+#: templates/js/translated/company.js:653 templates/js/translated/part.js:721
msgid "Units"
msgstr ""
@@ -2434,13 +2523,13 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:78
-#: company/templates/company/supplier_part.html:87 order/models.py:224
+#: company/templates/company/supplier_part.html:87 order/models.py:227
#: order/templates/order/order_base.html:112
-#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
-#: part/bom.py:247 stock/templates/stock/item_base.html:397
+#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237
+#: part/bom.py:265 stock/templates/stock/item_base.html:397
#: templates/js/translated/company.js:337
#: templates/js/translated/company.js:774 templates/js/translated/order.js:823
-#: templates/js/translated/part.js:215 templates/js/translated/part.js:857
+#: templates/js/translated/part.js:215 templates/js/translated/part.js:863
#: templates/js/translated/table_filters.js:393
msgid "Supplier"
msgstr ""
@@ -2450,8 +2539,8 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:1025
-#: templates/js/translated/part.js:226 templates/js/translated/part.js:875
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1025
+#: templates/js/translated/part.js:226 templates/js/translated/part.js:881
msgid "SKU"
msgstr ""
@@ -2472,22 +2561,22 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:119
-#: part/models.py:2641 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2648 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:580 part/models.py:1779
+#: company/models.py:580 part/models.py:1781
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1779
+#: company/models.py:580 part/models.py:1781
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:493 stock/templates/stock/item_base.html:338
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1791
+#: stock/models.py:495 stock/templates/stock/item_base.html:338
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1799
msgid "Packaging"
msgstr ""
@@ -2495,7 +2584,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1781
+#: company/models.py:584 part/models.py:1783
msgid "multiple"
msgstr ""
@@ -2554,12 +2643,12 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:83 order/models.py:547
-#: order/templates/order/sales_order_base.html:115 stock/models.py:512
-#: stock/models.py:513 stock/serializers.py:625
+#: company/templates/company/company_base.html:83 order/models.py:552
+#: order/templates/order/sales_order_base.html:115 stock/models.py:514
+#: stock/models.py:515 stock/serializers.py:626
#: stock/templates/stock/item_base.html:290
#: templates/js/translated/company.js:329 templates/js/translated/order.js:1240
-#: templates/js/translated/stock.js:2452
+#: templates/js/translated/stock.js:2610
#: templates/js/translated/table_filters.js:397
msgid "Customer"
msgstr ""
@@ -2590,7 +2679,7 @@ msgstr ""
#: company/templates/company/detail.html:20
#: company/templates/company/manufacturer_part.html:118
-#: part/templates/part/detail.html:336
+#: part/templates/part/detail.html:353
msgid "New Supplier Part"
msgstr ""
@@ -2598,8 +2687,8 @@ msgstr ""
#: company/templates/company/detail.html:79
#: company/templates/company/manufacturer_part.html:127
#: company/templates/company/manufacturer_part.html:156
-#: part/templates/part/category.html:171 part/templates/part/detail.html:345
-#: part/templates/part/detail.html:374
+#: part/templates/part/category.html:171 part/templates/part/detail.html:362
+#: part/templates/part/detail.html:391
msgid "Options"
msgstr ""
@@ -2627,7 +2716,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:364
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:381
msgid "New Manufacturer Part"
msgstr ""
@@ -2641,7 +2730,7 @@ msgstr ""
#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:68 part/templates/part/part_sidebar.html:33
+#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
@@ -2663,7 +2752,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:91 part/templates/part/part_sidebar.html:37
+#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:41
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
@@ -2691,13 +2780,13 @@ msgstr ""
#: company/templates/company/detail.html:384
#: company/templates/company/manufacturer_part.html:215
-#: part/templates/part/detail.html:418
+#: part/templates/part/detail.html:435
msgid "Delete Supplier Parts?"
msgstr ""
#: company/templates/company/detail.html:385
#: company/templates/company/manufacturer_part.html:216
-#: part/templates/part/detail.html:419
+#: part/templates/part/detail.html:436
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2714,7 +2803,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:34
#: company/templates/company/supplier_part.html:159
-#: part/templates/part/detail.html:71 part/templates/part/part_base.html:76
+#: part/templates/part/detail.html:88 part/templates/part/part_base.html:76
msgid "Order part"
msgstr ""
@@ -2735,34 +2824,34 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:114
#: company/templates/company/supplier_part.html:15 company/views.py:49
-#: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163
+#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:163
#: templates/InvenTree/search.html:188 templates/navbar.html:45
msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
-#: part/templates/part/detail.html:347
+#: part/templates/part/detail.html:364
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
#: company/templates/company/manufacturer_part.html:158
#: company/templates/company/manufacturer_part.html:254
-#: part/templates/part/detail.html:347 part/templates/part/detail.html:376
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:393
#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31
-#: users/models.py:210
+#: users/models.py:212
msgid "Delete"
msgstr ""
#: company/templates/company/manufacturer_part.html:143
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:17
-#: part/templates/part/detail.html:170 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:187 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:147
-#: part/templates/part/detail.html:175
+#: part/templates/part/detail.html:192
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
@@ -2773,7 +2862,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:191
-#: part/templates/part/detail.html:862
+#: part/templates/part/detail.html:892
msgid "Add Parameter"
msgstr ""
@@ -2802,9 +2891,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:477
+#: company/templates/company/supplier_part.html:24 stock/models.py:479
#: stock/templates/stock/item_base.html:402
-#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1748
+#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1756
msgid "Supplier Part"
msgstr ""
@@ -2830,7 +2919,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:167
-#: templates/js/translated/stock.js:360
+#: templates/js/translated/stock.js:368
msgid "New Stock Item"
msgstr ""
@@ -2840,7 +2929,7 @@ msgid "Supplier Part Orders"
msgstr ""
#: company/templates/company/supplier_part.html:160
-#: part/templates/part/detail.html:72
+#: part/templates/part/detail.html:89
msgid "Order Part"
msgstr ""
@@ -2851,7 +2940,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1619
+#: part/templates/part/prices.html:271 part/views.py:1628
msgid "Add Price Break"
msgstr ""
@@ -2859,11 +2948,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1681
+#: company/templates/company/supplier_part.html:224 part/views.py:1690
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1667
+#: company/templates/company/supplier_part.html:238 part/views.py:1676
msgid "Edit Price Break"
msgstr ""
@@ -2881,10 +2970,10 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:150
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/bom.js:328 templates/js/translated/part.js:489
-#: templates/js/translated/part.js:624 templates/js/translated/part.js:1118
-#: templates/js/translated/part.js:1279 templates/js/translated/stock.js:927
-#: templates/js/translated/stock.js:1580 templates/navbar.html:28
+#: templates/js/translated/bom.js:340 templates/js/translated/part.js:495
+#: templates/js/translated/part.js:630 templates/js/translated/part.js:1125
+#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:935
+#: templates/js/translated/stock.js:1588 templates/navbar.html:28
msgid "Stock"
msgstr ""
@@ -2907,8 +2996,8 @@ msgstr ""
#: stock/templates/stock/location.html:151
#: stock/templates/stock/location.html:163
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2351
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2509
+#: templates/stats.html:105 templates/stats.html:114 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2937,20 +3026,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:584
+#: company/views.py:129 part/views.py:593
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:616
+#: company/views.py:158 part/views.py:625
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:623
+#: company/views.py:165 part/views.py:632
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:632
+#: company/views.py:174 part/views.py:641
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3036,282 +3125,282 @@ msgstr ""
msgid "Cancel order"
msgstr ""
-#: order/models.py:122
+#: order/models.py:125
msgid "Order description"
msgstr ""
-#: order/models.py:124
+#: order/models.py:127
msgid "Link to external page"
msgstr ""
-#: order/models.py:132
+#: order/models.py:135
msgid "Created By"
msgstr ""
-#: order/models.py:139
+#: order/models.py:142
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:144
+#: order/models.py:147
msgid "Order notes"
msgstr ""
-#: order/models.py:211 order/models.py:537
+#: order/models.py:214 order/models.py:542
msgid "Order reference"
msgstr ""
-#: order/models.py:216 order/models.py:552
+#: order/models.py:219 order/models.py:557
msgid "Purchase order status"
msgstr ""
-#: order/models.py:225
+#: order/models.py:228
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:228 order/templates/order/order_base.html:118
+#: order/models.py:231 order/templates/order/order_base.html:118
#: templates/js/translated/order.js:832
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:228
+#: order/models.py:231
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:235
+#: order/models.py:238
msgid "received by"
msgstr ""
-#: order/models.py:240
+#: order/models.py:243
msgid "Issue Date"
msgstr ""
-#: order/models.py:241
+#: order/models.py:244
msgid "Date order was issued"
msgstr ""
-#: order/models.py:246
+#: order/models.py:249
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:247
+#: order/models.py:250
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:253
+#: order/models.py:256
msgid "Date order was completed"
msgstr ""
-#: order/models.py:282
+#: order/models.py:285
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:411
-msgid "Quantity must be an integer"
-msgstr ""
-
-#: order/models.py:415
+#: order/models.py:420
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:548
+#: order/models.py:553
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:554
+#: order/models.py:559
msgid "Customer Reference "
msgstr ""
-#: order/models.py:554
+#: order/models.py:559
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:559
+#: order/models.py:564
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:562 order/models.py:1028
+#: order/models.py:567 order/models.py:1048
#: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429
msgid "Shipment Date"
msgstr ""
-#: order/models.py:569
+#: order/models.py:574
msgid "shipped by"
msgstr ""
-#: order/models.py:635
+#: order/models.py:640
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:639
+#: order/models.py:644
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:642
+#: order/models.py:647
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:645
+#: order/models.py:650
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:797
+#: order/models.py:806
msgid "Item quantity"
msgstr ""
-#: order/models.py:803
+#: order/models.py:812
msgid "Line item reference"
msgstr ""
-#: order/models.py:805
+#: order/models.py:814
msgid "Line item notes"
msgstr ""
-#: order/models.py:835 order/models.py:926 order/models.py:1022
-#: templates/js/translated/order.js:1820
+#: order/models.py:842
+msgid "Supplier part must match supplier"
+msgstr ""
+
+#: order/models.py:855 order/models.py:946 order/models.py:1042
+#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2271
msgid "Order"
msgstr ""
-#: order/models.py:836 order/templates/order/order_base.html:9
+#: order/models.py:856 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:352
-#: templates/js/translated/order.js:801 templates/js/translated/part.js:832
-#: templates/js/translated/stock.js:1725 templates/js/translated/stock.js:2433
+#: templates/js/translated/order.js:801 templates/js/translated/part.js:838
+#: templates/js/translated/stock.js:1733 templates/js/translated/stock.js:2591
msgid "Purchase Order"
msgstr ""
-#: order/models.py:857
+#: order/models.py:877
msgid "Supplier part"
msgstr ""
-#: order/models.py:864 order/templates/order/order_base.html:163
+#: order/models.py:884 order/templates/order/order_base.html:163
#: templates/js/translated/order.js:589 templates/js/translated/order.js:1118
-#: templates/js/translated/part.js:904 templates/js/translated/part.js:930
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:937
#: templates/js/translated/table_filters.js:317
msgid "Received"
msgstr ""
-#: order/models.py:865
+#: order/models.py:885
msgid "Number of items received"
msgstr ""
-#: order/models.py:872 part/templates/part/prices.html:176 stock/models.py:606
+#: order/models.py:892 part/templates/part/prices.html:176 stock/models.py:608
#: stock/serializers.py:170 stock/templates/stock/item_base.html:359
-#: templates/js/translated/stock.js:1779
+#: templates/js/translated/stock.js:1787
msgid "Purchase Price"
msgstr ""
-#: order/models.py:873
+#: order/models.py:893
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:881
+#: order/models.py:901
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:936 part/templates/part/part_pricing.html:112
+#: order/models.py:956 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:937
+#: order/models.py:957
msgid "Unit sale price"
msgstr ""
-#: order/models.py:942
+#: order/models.py:962
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1029
+#: order/models.py:1049
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1036
+#: order/models.py:1056
msgid "Checked By"
msgstr ""
-#: order/models.py:1037
+#: order/models.py:1057
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1045
+#: order/models.py:1065
msgid "Shipment number"
msgstr ""
-#: order/models.py:1052
+#: order/models.py:1072
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1059
+#: order/models.py:1079
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1060
+#: order/models.py:1080
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1070
+#: order/models.py:1090
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1073
+#: order/models.py:1093
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1149 order/models.py:1151
+#: order/models.py:1171 order/models.py:1173
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1155
+#: order/models.py:1177
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1157
+#: order/models.py:1179
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1160
+#: order/models.py:1182
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1164
+#: order/models.py:1186
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:1170 order/serializers.py:734
+#: order/models.py:1192 order/serializers.py:740
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1173
+#: order/models.py:1195
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1174
+#: order/models.py:1196
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1182
+#: order/models.py:1204
msgid "Line"
msgstr ""
-#: order/models.py:1190 order/serializers.py:825 order/serializers.py:953
-#: templates/js/translated/model_renderers.js:251
+#: order/models.py:1212 order/serializers.py:831 order/serializers.py:959
+#: templates/js/translated/model_renderers.js:285
msgid "Shipment"
msgstr ""
-#: order/models.py:1191
+#: order/models.py:1213
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1203
+#: order/models.py:1225
msgid "Item"
msgstr ""
-#: order/models.py:1204
+#: order/models.py:1226
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1207
+#: order/models.py:1229
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3319,7 +3408,7 @@ msgstr ""
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:211 order/serializers.py:790
+#: order/serializers.py:211 order/serializers.py:796
msgid "Line Item"
msgstr ""
@@ -3355,39 +3444,39 @@ msgstr ""
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:581
+#: order/serializers.py:587
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:649
+#: order/serializers.py:655
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:699 order/serializers.py:802
+#: order/serializers.py:705 order/serializers.py:808
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:721
+#: order/serializers.py:727
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:815
+#: order/serializers.py:821
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:839 order/serializers.py:964
+#: order/serializers.py:845 order/serializers.py:970
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:842 order/serializers.py:967
+#: order/serializers.py:848 order/serializers.py:973
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:894
+#: order/serializers.py:900
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:904
+#: order/serializers.py:910
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3441,6 +3530,7 @@ msgstr ""
#: order/templates/order/order_base.html:94
#: order/templates/order/sales_order_base.html:89
+#: templates/js/translated/stock.js:2327
msgid "Order Status"
msgstr ""
@@ -3538,7 +3628,7 @@ msgstr ""
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/build.js:300 templates/js/translated/build.js:1311
#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488
-#: templates/js/translated/stock.js:593 templates/js/translated/stock.js:761
+#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769
msgid "Remove row"
msgstr ""
@@ -3729,7 +3819,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:48
-#: templates/js/translated/bom.js:720 templates/js/translated/build.js:1243
+#: templates/js/translated/bom.js:732 templates/js/translated/build.js:1243
msgid "Actions"
msgstr ""
@@ -3832,447 +3922,448 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:125 part/models.py:81 part/models.py:847
+#: part/bom.py:125 part/models.py:83 part/models.py:849
#: part/templates/part/category.html:108 part/templates/part/part_base.html:338
msgid "Default Location"
msgstr ""
-#: part/bom.py:126 part/templates/part/part_base.html:185
+#: part/bom.py:126 templates/email/low_stock_notification.html:17
+msgid "Total Stock"
+msgstr ""
+
+#: part/bom.py:127 part/templates/part/part_base.html:185
msgid "Available Stock"
msgstr ""
-#: part/forms.py:85
+#: part/bom.py:128 part/templates/part/part_base.html:203
+#: templates/js/translated/part.js:1301
+msgid "On Order"
+msgstr ""
+
+#: part/forms.py:84
msgid "Select part category"
msgstr ""
-#: part/forms.py:122
+#: part/forms.py:121
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:126
+#: part/forms.py:125
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:146
+#: part/forms.py:145
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:82
+#: part/models.py:84
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:85
+#: part/models.py:87
msgid "Default keywords"
msgstr ""
-#: part/models.py:85
+#: part/models.py:87
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:95 part/models.py:2526 part/templates/part/category.html:15
+#: part/models.py:97 part/models.py:2533 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:96 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/stats.html:84
+#: part/models.py:98 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/stats.html:96
#: users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:358 part/templates/part/cat_link.html:3
+#: part/models.py:360 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:17 part/templates/part/category.html:133
#: part/templates/part/category.html:153
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:37
-#: templates/js/translated/part.js:1656 templates/navbar.html:21
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+#: templates/js/translated/part.js:1663 templates/navbar.html:21
+#: templates/stats.html:92 templates/stats.html:101 users/models.py:41
msgid "Parts"
msgstr ""
-#: part/models.py:450
+#: part/models.py:452
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:500 part/models.py:512
+#: part/models.py:502 part/models.py:514
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:642
+#: part/models.py:644
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:646
+#: part/models.py:648
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:651
+#: part/models.py:653
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:746
+#: part/models.py:748
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:771
+#: part/models.py:773
msgid "Part name"
msgstr ""
-#: part/models.py:778
+#: part/models.py:780
msgid "Is Template"
msgstr ""
-#: part/models.py:779
+#: part/models.py:781
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:789
+#: part/models.py:791
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:790
+#: part/models.py:792
msgid "Variant Of"
msgstr ""
-#: part/models.py:796
+#: part/models.py:798
msgid "Part description"
msgstr ""
-#: part/models.py:801 part/templates/part/category.html:86
+#: part/models.py:803 part/templates/part/category.html:86
#: part/templates/part/part_base.html:302
msgid "Keywords"
msgstr ""
-#: part/models.py:802
+#: part/models.py:804
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:809 part/models.py:2276 part/models.py:2525
+#: part/models.py:811 part/models.py:2283 part/models.py:2532
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:183
-#: templates/js/translated/part.js:1261
+#: templates/InvenTree/settings/settings.html:186
+#: templates/js/translated/part.js:1268
msgid "Category"
msgstr ""
-#: part/models.py:810
+#: part/models.py:812
msgid "Part category"
msgstr ""
-#: part/models.py:815 part/templates/part/part_base.html:274
-#: templates/js/translated/part.js:612 templates/js/translated/part.js:1214
-#: templates/js/translated/stock.js:1552
+#: part/models.py:817 part/templates/part/part_base.html:274
+#: templates/js/translated/part.js:618 templates/js/translated/part.js:1221
+#: templates/js/translated/stock.js:1560
msgid "IPN"
msgstr ""
-#: part/models.py:816
+#: part/models.py:818
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:822
+#: part/models.py:824
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:823 part/templates/part/part_base.html:281
-#: report/models.py:200 templates/js/translated/part.js:616
+#: part/models.py:825 part/templates/part/part_base.html:281
+#: report/models.py:200 templates/js/translated/part.js:622
msgid "Revision"
msgstr ""
-#: part/models.py:845
+#: part/models.py:847
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:892 part/templates/part/part_base.html:347
+#: part/models.py:894 part/templates/part/part_base.html:347
msgid "Default Supplier"
msgstr ""
-#: part/models.py:893
+#: part/models.py:895
msgid "Default supplier part"
msgstr ""
-#: part/models.py:900
+#: part/models.py:902
msgid "Default Expiry"
msgstr ""
-#: part/models.py:901
+#: part/models.py:903
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:906 part/templates/part/part_base.html:196
+#: part/models.py:908 part/templates/part/part_base.html:196
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:907
+#: part/models.py:909
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:914
+#: part/models.py:916
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:920
+#: part/models.py:922
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:926
+#: part/models.py:928
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:932
+#: part/models.py:934
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:937
+#: part/models.py:939
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:942
+#: part/models.py:944
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:946 plugin/models.py:46
-#: templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:96
-#: templates/js/translated/table_filters.js:295
-#: templates/js/translated/table_filters.js:417
-msgid "Active"
-msgstr ""
-
-#: part/models.py:947
+#: part/models.py:949
msgid "Is this part active?"
msgstr ""
-#: part/models.py:952
+#: part/models.py:954
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:957
+#: part/models.py:959
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:960
+#: part/models.py:962
msgid "BOM checksum"
msgstr ""
-#: part/models.py:960
+#: part/models.py:962
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:963
+#: part/models.py:965
msgid "BOM checked by"
msgstr ""
-#: part/models.py:965
+#: part/models.py:967
msgid "BOM checked date"
msgstr ""
-#: part/models.py:969
+#: part/models.py:971
msgid "Creation User"
msgstr ""
-#: part/models.py:1781
+#: part/models.py:1783
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2326
+#: part/models.py:2333
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2343
+#: part/models.py:2350
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2363 templates/js/translated/part.js:1707
-#: templates/js/translated/stock.js:1276
+#: part/models.py:2370 templates/js/translated/part.js:1714
+#: templates/js/translated/stock.js:1284
msgid "Test Name"
msgstr ""
-#: part/models.py:2364
+#: part/models.py:2371
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2376
msgid "Test Description"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2377
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2375 templates/js/translated/part.js:1716
+#: part/models.py:2382 templates/js/translated/part.js:1723
#: templates/js/translated/table_filters.js:281
msgid "Required"
msgstr ""
-#: part/models.py:2376
+#: part/models.py:2383
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2381 templates/js/translated/part.js:1724
+#: part/models.py:2388 templates/js/translated/part.js:1731
msgid "Requires Value"
msgstr ""
-#: part/models.py:2382
+#: part/models.py:2389
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2387 templates/js/translated/part.js:1731
+#: part/models.py:2394 templates/js/translated/part.js:1738
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2388
+#: part/models.py:2395
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2399
+#: part/models.py:2406
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2435
+#: part/models.py:2442
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2443
+#: part/models.py:2450
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2450
+#: part/models.py:2457
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2480
+#: part/models.py:2487
msgid "Parent Part"
msgstr ""
-#: part/models.py:2482 part/models.py:2531 part/models.py:2532
-#: templates/InvenTree/settings/settings.html:178
+#: part/models.py:2489 part/models.py:2538 part/models.py:2539
+#: templates/InvenTree/settings/settings.html:181
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2484
+#: part/models.py:2491
msgid "Data"
msgstr ""
-#: part/models.py:2484
+#: part/models.py:2491
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2536 templates/InvenTree/settings/settings.html:187
+#: part/models.py:2543 templates/InvenTree/settings/settings.html:190
msgid "Default Value"
msgstr ""
-#: part/models.py:2537
+#: part/models.py:2544
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2614
+#: part/models.py:2621
msgid "Select parent part"
msgstr ""
-#: part/models.py:2622
+#: part/models.py:2629
msgid "Sub part"
msgstr ""
-#: part/models.py:2623
+#: part/models.py:2630
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2629
+#: part/models.py:2636
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2631 templates/js/translated/bom.js:566
-#: templates/js/translated/bom.js:640
+#: part/models.py:2638 templates/js/translated/bom.js:578
+#: templates/js/translated/bom.js:652
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2638
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2634
+#: part/models.py:2641
msgid "Overage"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2642
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2638
+#: part/models.py:2645
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2641
+#: part/models.py:2648
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2643
+#: part/models.py:2650
msgid "Checksum"
msgstr ""
-#: part/models.py:2643
+#: part/models.py:2650
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2647 templates/js/translated/bom.js:657
+#: part/models.py:2654 templates/js/translated/bom.js:669
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2648
+#: part/models.py:2655
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2653 templates/js/translated/bom.js:649
+#: part/models.py:2660 templates/js/translated/bom.js:661
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2654
+#: part/models.py:2661
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2739 stock/models.py:355
+#: part/models.py:2746 stock/models.py:357
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2748 part/models.py:2750
+#: part/models.py:2755 part/models.py:2757
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2879
+#: part/models.py:2886
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2908
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2920
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2928
msgid "Substitute part"
msgstr ""
-#: part/models.py:2932
+#: part/models.py:2939
msgid "Part 1"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2943
msgid "Part 2"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2943
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2968
+#: part/models.py:2975
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4327,7 +4418,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:253
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:270
msgid "BOM actions"
msgstr ""
@@ -4499,7 +4590,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:348
msgid "Duplicate Part"
msgstr ""
@@ -4533,145 +4624,149 @@ msgid "Showing stock for all variants of %(full_name)s"
msgstr ""
#: part/templates/part/detail.html:43
+msgid "Part Stock Allocations"
+msgstr ""
+
+#: part/templates/part/detail.html:60
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:48
+#: part/templates/part/detail.html:65
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:105
+#: part/templates/part/detail.html:122
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:142
+#: part/templates/part/detail.html:159
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:146
+#: part/templates/part/detail.html:163
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:147
+#: part/templates/part/detail.html:164
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:174
+#: part/templates/part/detail.html:191
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:45
+#: part/templates/part/detail.html:228 part/templates/part/part_sidebar.html:49
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:215 part/templates/part/detail.html:216
+#: part/templates/part/detail.html:232 part/templates/part/detail.html:233
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:236 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:253 part/templates/part/part_sidebar.html:17
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:241
+#: part/templates/part/detail.html:258
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:245 templates/js/translated/bom.js:70
+#: part/templates/part/detail.html:262 templates/js/translated/bom.js:70
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:247
+#: part/templates/part/detail.html:264
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:257
+#: part/templates/part/detail.html:274
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:259 templates/js/translated/part.js:272
+#: part/templates/part/detail.html:276 templates/js/translated/part.js:272
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:278
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:266
+#: part/templates/part/detail.html:283
msgid "New BOM Item"
msgstr ""
-#: part/templates/part/detail.html:267
+#: part/templates/part/detail.html:284
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:280
+#: part/templates/part/detail.html:297
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:297
+#: part/templates/part/detail.html:314
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:322
+#: part/templates/part/detail.html:339
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:332
+#: part/templates/part/detail.html:349
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:360
+#: part/templates/part/detail.html:377
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:393
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:558
+#: part/templates/part/detail.html:575
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:559
+#: part/templates/part/detail.html:576
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:608
+#: part/templates/part/detail.html:625
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:652
+#: part/templates/part/detail.html:682
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:660
+#: part/templates/part/detail.html:690
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:755
+#: part/templates/part/detail.html:785
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:812
+#: part/templates/part/detail.html:842
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:925
+#: part/templates/part/detail.html:955
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:937
+#: part/templates/part/detail.html:967
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:949
+#: part/templates/part/detail.html:979
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1038
+#: part/templates/part/detail.html:1068
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4786,7 +4881,7 @@ msgstr ""
#: templates/js/translated/company.js:508
#: templates/js/translated/company.js:765
#: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:527 templates/js/translated/part.js:604
+#: templates/js/translated/part.js:533 templates/js/translated/part.js:610
msgid "Inactive"
msgstr ""
@@ -4805,10 +4900,6 @@ msgstr ""
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1294
-msgid "On Order"
-msgstr ""
-
#: part/templates/part/part_base.html:210 templates/InvenTree/index.html:178
msgid "Required for Build Orders"
msgstr ""
@@ -4821,12 +4912,12 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:678
+#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:690
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1125
-#: templates/js/translated/part.js:1298
+#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1132
+#: templates/js/translated/part.js:1305
msgid "Building"
msgstr ""
@@ -4878,7 +4969,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:632
+#: templates/js/translated/bom.js:644
msgid "No supplier pricing available"
msgstr ""
@@ -4920,7 +5011,12 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/templates/part/part_sidebar.html:41
+#: part/templates/part/part_sidebar.html:31
+#: stock/templates/stock/stock_sidebar.html:8
+msgid "Allocations"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:45
msgid "Test Templates"
msgstr ""
@@ -4993,7 +5089,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:626
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:638
msgid "Supplier Cost"
msgstr ""
@@ -5015,7 +5111,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1690
+#: part/templates/part/prices.html:215 part/views.py:1699
msgid "Add Internal Price Break"
msgstr ""
@@ -5035,9 +5131,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:588
-#: templates/js/translated/part.js:491 templates/js/translated/part.js:1115
-#: templates/js/translated/part.js:1302
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:600
+#: templates/js/translated/part.js:497 templates/js/translated/part.js:1122
+#: templates/js/translated/part.js:1309
msgid "No Stock"
msgstr ""
@@ -5054,116 +5150,116 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:116
+#: part/templatetags/inventree_extras.py:125
msgid "Unknown database"
msgstr ""
-#: part/views.py:92
+#: part/views.py:93
msgid "Set Part Category"
msgstr ""
-#: part/views.py:142
+#: part/views.py:143
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:214
+#: part/views.py:215
msgid "Match References"
msgstr ""
-#: part/views.py:502
+#: part/views.py:511
msgid "None"
msgstr ""
-#: part/views.py:561
+#: part/views.py:570
msgid "Part QR Code"
msgstr ""
-#: part/views.py:663
+#: part/views.py:672
msgid "Select Part Image"
msgstr ""
-#: part/views.py:689
+#: part/views.py:698
msgid "Updated part image"
msgstr ""
-#: part/views.py:692
+#: part/views.py:701
msgid "Part image not found"
msgstr ""
-#: part/views.py:766
+#: part/views.py:775
msgid "Match Parts"
msgstr ""
-#: part/views.py:1101
+#: part/views.py:1110
msgid "Export Bill of Materials"
msgstr ""
-#: part/views.py:1150
+#: part/views.py:1159
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1157
+#: part/views.py:1166
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1166
+#: part/views.py:1175
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1315
+#: part/views.py:1324
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1325
+#: part/views.py:1334
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1332
+#: part/views.py:1341
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1391 templates/js/translated/part.js:315
+#: part/views.py:1400 templates/js/translated/part.js:315
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1429
+#: part/views.py:1438
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1435
+#: part/views.py:1444
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1444
+#: part/views.py:1453
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1545
+#: part/views.py:1554
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1601
+#: part/views.py:1610
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1623
+#: part/views.py:1632
msgid "Added new price break"
msgstr ""
-#: part/views.py:1699
+#: part/views.py:1708
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1707
+#: part/views.py:1716
msgid "Delete Internal Price Break"
msgstr ""
-#: plugin/integration.py:124
+#: plugin/integration.py:138
msgid "No author found"
msgstr ""
-#: plugin/integration.py:136
+#: plugin/integration.py:152
msgid "No date found"
msgstr ""
@@ -5191,7 +5287,7 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:195
+#: plugin/models.py:199
msgid "Plugin"
msgstr ""
@@ -5357,12 +5453,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:517 stock/templates/stock/item_base.html:156
+#: stock/models.py:519 stock/templates/stock/item_base.html:156
#: templates/js/translated/build.js:293 templates/js/translated/build.js:697
#: templates/js/translated/build.js:1073
#: templates/js/translated/model_renderers.js:95
#: templates/js/translated/order.js:99 templates/js/translated/order.js:1945
-#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:415
+#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:423
msgid "Serial Number"
msgstr ""
@@ -5371,19 +5467,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:1948
+#: stock/models.py:1976
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:1954
+#: stock/models.py:1982
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:49
+#: templates/InvenTree/settings/plugin.html:50
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2367
+#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2525
msgid "Date"
msgstr ""
@@ -5396,23 +5492,27 @@ msgid "Fail"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:123
-#: stock/templates/stock/stock_sidebar.html:12
+#: stock/templates/stock/stock_sidebar.html:16
msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:578 templates/js/translated/stock.js:748
-#: templates/js/translated/stock.js:2627
+#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756
+#: templates/js/translated/stock.js:2785
msgid "Serial"
msgstr ""
-#: stock/api.py:478
+#: stock/api.py:476
msgid "Quantity is required"
msgstr ""
-#: stock/forms.py:77 stock/forms.py:251 stock/models.py:574
+#: stock/api.py:483
+msgid "Valid part must be supplied"
+msgstr ""
+
+#: stock/forms.py:77 stock/forms.py:251 stock/models.py:576
#: stock/templates/stock/item_base.html:193
-#: templates/js/translated/stock.js:1701
+#: templates/js/translated/stock.js:1709
msgid "Expiry Date"
msgstr ""
@@ -5460,228 +5560,228 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:60 stock/models.py:611
+#: stock/models.py:62 stock/models.py:613
#: stock/templates/stock/item_base.html:416
msgid "Owner"
msgstr ""
-#: stock/models.py:61 stock/models.py:612
+#: stock/models.py:63 stock/models.py:614
msgid "Select Owner"
msgstr ""
-#: stock/models.py:336
+#: stock/models.py:338
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:372
+#: stock/models.py:374
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:382 stock/models.py:391
+#: stock/models.py:384 stock/models.py:393
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:383
+#: stock/models.py:385
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:405
+#: stock/models.py:407
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:413
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:418
+#: stock/models.py:420
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:461
+#: stock/models.py:463
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:470
+#: stock/models.py:472
msgid "Base part"
msgstr ""
-#: stock/models.py:478
+#: stock/models.py:480
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:484 stock/templates/stock/location.html:16
+#: stock/models.py:486 stock/templates/stock/location.html:16
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:487
+#: stock/models.py:489
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:494
+#: stock/models.py:496
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:500 stock/templates/stock/item_base.html:298
+#: stock/models.py:502 stock/templates/stock/item_base.html:298
msgid "Installed In"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:505
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:521
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:535
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:537
+#: stock/models.py:539
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:546
+#: stock/models.py:548
msgid "Source Build"
msgstr ""
-#: stock/models.py:548
+#: stock/models.py:550
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:559
+#: stock/models.py:561
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:562
+#: stock/models.py:564
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:568
+#: stock/models.py:570
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:575
+#: stock/models.py:577
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:588
+#: stock/models.py:590
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:588
+#: stock/models.py:590
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:598 stock/templates/stock/item.html:111
+#: stock/models.py:600 stock/templates/stock/item.html:128
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:607
+#: stock/models.py:609
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1068
+#: stock/models.py:1096
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1074
+#: stock/models.py:1102
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1080
+#: stock/models.py:1108
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1083
+#: stock/models.py:1111
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1086
+#: stock/models.py:1114
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1093
+#: stock/models.py:1121
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1164
+#: stock/models.py:1192
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1167
+#: stock/models.py:1195
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1170
+#: stock/models.py:1198
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1173
+#: stock/models.py:1201
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1176
+#: stock/models.py:1204
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1179
+#: stock/models.py:1207
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1186 stock/serializers.py:774
+#: stock/models.py:1214 stock/serializers.py:775
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1190
+#: stock/models.py:1218
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1194
+#: stock/models.py:1222
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1198
+#: stock/models.py:1226
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1369
+#: stock/models.py:1397
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1868
+#: stock/models.py:1896
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1925
+#: stock/models.py:1953
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1931
+#: stock/models.py:1959
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1949
+#: stock/models.py:1977
msgid "Test name"
msgstr ""
-#: stock/models.py:1955 templates/js/translated/table_filters.js:271
+#: stock/models.py:1983 templates/js/translated/table_filters.js:271
msgid "Test result"
msgstr ""
-#: stock/models.py:1961
+#: stock/models.py:1989
msgid "Test output value"
msgstr ""
-#: stock/models.py:1968
+#: stock/models.py:1996
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1974
+#: stock/models.py:2002
msgid "Test notes"
msgstr ""
@@ -5706,7 +5806,7 @@ msgstr ""
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:326 stock/serializers.py:731 stock/serializers.py:972
+#: stock/serializers.py:326 stock/serializers.py:732 stock/serializers.py:973
msgid "Destination stock location"
msgstr ""
@@ -5718,63 +5818,63 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:588
+#: stock/serializers.py:589
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:592
+#: stock/serializers.py:593
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:597
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:626
+#: stock/serializers.py:627
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:632
+#: stock/serializers.py:633
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:640
+#: stock/serializers.py:641
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:650 stock/serializers.py:880
+#: stock/serializers.py:651 stock/serializers.py:881
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:738
+#: stock/serializers.py:739
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:743
+#: stock/serializers.py:744
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:744
+#: stock/serializers.py:745
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:749
+#: stock/serializers.py:750
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:750
+#: stock/serializers.py:751
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:760
+#: stock/serializers.py:761
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:842
+#: stock/serializers.py:843
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:870
+#: stock/serializers.py:871
msgid "Stock transaction notes"
msgstr ""
@@ -5787,47 +5887,51 @@ msgid "New Entry"
msgstr ""
#: stock/templates/stock/item.html:48
-msgid "Child Stock Items"
-msgstr ""
-
-#: stock/templates/stock/item.html:55
-msgid "This stock item does not have any child items"
+msgid "Stock Item Allocations"
msgstr ""
#: stock/templates/stock/item.html:64
-#: stock/templates/stock/stock_sidebar.html:8
-msgid "Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:57
-msgid "Test Report"
+msgid "Child Stock Items"
msgstr ""
#: stock/templates/stock/item.html:72
+msgid "This stock item does not have any child items"
+msgstr ""
+
+#: stock/templates/stock/item.html:81
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:57
+msgid "Test Report"
+msgstr ""
+
+#: stock/templates/stock/item.html:89
msgid "Delete Test Data"
msgstr ""
-#: stock/templates/stock/item.html:76
+#: stock/templates/stock/item.html:93
msgid "Add Test Data"
msgstr ""
-#: stock/templates/stock/item.html:133
+#: stock/templates/stock/item.html:150
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:137 stock/views.py:482
+#: stock/templates/stock/item.html:154 stock/views.py:482
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304
+#: stock/templates/stock/item.html:309 stock/templates/stock/item.html:334
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:324
+#: stock/templates/stock/item.html:354
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:338
+#: stock/templates/stock/item.html:368
msgid "Delete Test Result"
msgstr ""
@@ -5952,7 +6056,7 @@ msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:206
-#: templates/js/translated/stock.js:1714
+#: templates/js/translated/stock.js:1722
msgid "Last Updated"
msgstr ""
@@ -6111,7 +6215,7 @@ msgid "Sublocations"
msgstr ""
#: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164
-#: templates/stats.html:97 users/models.py:42
+#: templates/stats.html:109 users/models.py:42
msgid "Stock Locations"
msgstr ""
@@ -6135,7 +6239,7 @@ msgstr ""
msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/stock_sidebar.html:16
+#: stock/templates/stock/stock_sidebar.html:20
msgid "Child Items"
msgstr ""
@@ -6164,7 +6268,7 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:162
+#: stock/views.py:162 templates/js/translated/stock.js:139
msgid "Edit Stock Location"
msgstr ""
@@ -6204,7 +6308,7 @@ msgstr ""
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:727 templates/js/translated/stock.js:1066
+#: stock/views.py:727 templates/js/translated/stock.js:1074
msgid "Confirm stock adjustment"
msgstr ""
@@ -6212,7 +6316,7 @@ msgstr ""
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:324
+#: stock/views.py:760 templates/js/translated/stock.js:332
msgid "Edit Stock Item"
msgstr ""
@@ -6224,7 +6328,7 @@ msgstr ""
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1153 templates/js/translated/stock.js:304
+#: stock/views.py:1153 templates/js/translated/stock.js:312
msgid "Duplicate Stock Item"
msgstr ""
@@ -6268,6 +6372,18 @@ msgstr ""
msgid "The requested page does not exist"
msgstr ""
+#: templates/500.html:5 templates/500.html:11
+msgid "Internal Server Error"
+msgstr ""
+
+#: templates/500.html:14
+msgid "The InvenTree server raised an internal error"
+msgstr ""
+
+#: templates/500.html:15
+msgid "Refer to the error log in the admin interface for further details"
+msgstr ""
+
#: templates/503.html:10 templates/503.html:35
msgid "Site is in Maintenance"
msgstr ""
@@ -6390,7 +6506,7 @@ msgid "Signup"
msgstr ""
#: templates/InvenTree/settings/mixins/settings.html:5
-#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:118
+#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113
msgid "Settings"
msgstr ""
@@ -6431,43 +6547,43 @@ msgstr ""
msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage."
msgstr ""
-#: templates/InvenTree/settings/plugin.html:32
+#: templates/InvenTree/settings/plugin.html:33
msgid "Plugins"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:37
+#: templates/InvenTree/settings/plugin.html:38
#: templates/js/translated/plugin.js:15
msgid "Install Plugin"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:46 templates/navbar.html:111
+#: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111
#: users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin.html:49
#: templates/InvenTree/settings/plugin_settings.html:28
msgid "Author"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:50
+#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin_settings.html:43
msgid "Version"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:91
+#: templates/InvenTree/settings/plugin.html:92
msgid "Inactive plugins"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:114
+#: templates/InvenTree/settings/plugin.html:115
msgid "Plugin Error Stack"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:123
+#: templates/InvenTree/settings/plugin.html:124
msgid "Stage"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:125
+#: templates/InvenTree/settings/plugin.html:126
msgid "Message"
msgstr ""
@@ -6555,37 +6671,37 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:75
+#: templates/InvenTree/settings/settings.html:78
msgid "Edit Plugin Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:77
+#: templates/InvenTree/settings/settings.html:80
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:79
+#: templates/InvenTree/settings/settings.html:82
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:168
+#: templates/InvenTree/settings/settings.html:171
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:190
-#: templates/InvenTree/settings/settings.html:289
+#: templates/InvenTree/settings/settings.html:193
+#: templates/InvenTree/settings/settings.html:292
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:191
-#: templates/InvenTree/settings/settings.html:290
+#: templates/InvenTree/settings/settings.html:194
+#: templates/InvenTree/settings/settings.html:293
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:269
+#: templates/InvenTree/settings/settings.html:272
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:273
+#: templates/InvenTree/settings/settings.html:276
msgid "ID"
msgstr ""
@@ -6763,124 +6879,105 @@ msgstr ""
msgid "Remove multifactor"
msgstr ""
-#: templates/InvenTree/settings/user.html:219
+#: templates/InvenTree/settings/user.html:220
+msgid "Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:226
+msgid "Log out active sessions (except this one)"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:227
+msgid "Log Out Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:236
+msgid "unknown on unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:237
+msgid "unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:241
+msgid "IP Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:242
+msgid "Device"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:243
+msgid "Last Activity"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:252
+#, python-format
+msgid "%(time)s ago (this session)"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:254
+#, python-format
+msgid "%(time)s ago"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:266
+msgid "Do you really want to remove the selected email address?"
+msgstr ""
+
#: templates/InvenTree/settings/user_display.html:25
msgid "Theme Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:227
#: templates/InvenTree/settings/user_display.html:35
msgid "Select theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:237
#: templates/InvenTree/settings/user_display.html:46
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:246
#: templates/InvenTree/settings/user_display.html:54
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:254
#: templates/InvenTree/settings/user_display.html:63
msgid "Select language"
msgstr ""
-#: templates/InvenTree/settings/user.html:270
#: templates/InvenTree/settings/user_display.html:79
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:272
#: templates/InvenTree/settings/user_display.html:81
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:279
#: templates/InvenTree/settings/user_display.html:88
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:281
#: templates/InvenTree/settings/user_display.html:91
msgid "Some languages are not complete"
msgstr ""
-#: templates/InvenTree/settings/user.html:283
#: templates/InvenTree/settings/user_display.html:93
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user.html:285
+#: templates/InvenTree/settings/user_display.html:95
+msgid "and hidden."
+msgstr ""
+
#: templates/InvenTree/settings/user_display.html:95
msgid "Show them too"
msgstr ""
-#: templates/InvenTree/settings/user.html:292
#: templates/InvenTree/settings/user_display.html:101
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user.html:293
-#, python-format
-msgid "Native language translation of the\n"
-" InvenTree web application is community contributed via crowdin. Contributions are\n"
-" welcomed and encouraged."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:302
-msgid "Active Sessions"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:308
-msgid "Log out active sessions (except this one)"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:309
-msgid "Log Out Active Sessions"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:318
-msgid "unknown on unknown"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:319
-msgid "unknown"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:323
-msgid "IP Address"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:324
-msgid "Device"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:325
-msgid "Last Activity"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:334
-#, python-format
-msgid "%(time)s ago (this session)"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:336
-#, python-format
-msgid "%(time)s ago"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:348
-msgid "Do you really want to remove the selected email address?"
-msgstr ""
-
-#: templates/InvenTree/settings/user_display.html:95
-msgid "and hidden."
-msgstr ""
-
#: templates/InvenTree/settings/user_display.html:102
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
@@ -6899,9 +6996,9 @@ msgid "InvenTree Version Information"
msgstr ""
#: templates/about.html:11 templates/about.html:105
-#: templates/js/translated/bom.js:395 templates/js/translated/modals.js:53
-#: templates/js/translated/modals.js:573 templates/js/translated/modals.js:667
-#: templates/js/translated/modals.js:970 templates/modals.html:15
+#: templates/js/translated/bom.js:407 templates/js/translated/modals.js:53
+#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
+#: templates/js/translated/modals.js:983 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -7178,13 +7275,13 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1103
+#: templates/js/translated/bom.js:1117
msgid "Required Quantity"
msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:579 templates/js/translated/build.js:1189
+#: templates/js/translated/bom.js:591 templates/js/translated/build.js:1189
#: templates/js/translated/build.js:1810
#: templates/js/translated/table_filters.js:178
msgid "Available"
@@ -7208,10 +7305,6 @@ msgstr ""
msgid "Click on the following link to view this part"
msgstr ""
-#: templates/email/low_stock_notification.html:17
-msgid "Total Stock"
-msgstr ""
-
#: templates/email/low_stock_notification.html:19
msgid "Minimum Quantity"
msgstr ""
@@ -7232,11 +7325,11 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1040
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1053
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1041
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1054
msgid "No response from the InvenTree server"
msgstr ""
@@ -7248,27 +7341,27 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1063
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1051
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1064
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1068
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1056
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1069
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1073
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1061
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1074
msgid "The requested resource could not be located on the server"
msgstr ""
@@ -7280,11 +7373,11 @@ msgstr ""
msgid "HTTP method not allowed at URL"
msgstr ""
-#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1065
+#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1078
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1079
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -7353,7 +7446,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:140
-#: templates/js/translated/modals.js:1030
+#: templates/js/translated/modals.js:1043
msgid "Invalid server response"
msgstr ""
@@ -7381,7 +7474,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1018
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026
msgid "Remove stock item"
msgstr ""
@@ -7428,12 +7521,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73
-#: templates/js/translated/order.js:369 templates/js/translated/stock.js:510
+#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74
-#: templates/js/translated/order.js:370 templates/js/translated/stock.js:511
+#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519
msgid "Select file format"
msgstr ""
@@ -7489,87 +7582,87 @@ msgstr ""
msgid "Remove substitute part"
msgstr ""
-#: templates/js/translated/bom.js:340
-msgid "Select and add a new variant item using the input below"
+#: templates/js/translated/bom.js:352
+msgid "Select and add a new substitute part using the input below"
msgstr ""
-#: templates/js/translated/bom.js:351
+#: templates/js/translated/bom.js:363
msgid "Are you sure you wish to remove this substitute part link?"
msgstr ""
-#: templates/js/translated/bom.js:357
+#: templates/js/translated/bom.js:369
msgid "Remove Substitute Part"
msgstr ""
-#: templates/js/translated/bom.js:396
+#: templates/js/translated/bom.js:408
msgid "Add Substitute"
msgstr ""
-#: templates/js/translated/bom.js:397
+#: templates/js/translated/bom.js:409
msgid "Edit BOM Item Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:516
+#: templates/js/translated/bom.js:528
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:520 templates/js/translated/build.js:1171
+#: templates/js/translated/bom.js:532 templates/js/translated/build.js:1171
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:525
+#: templates/js/translated/bom.js:537
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:597
+#: templates/js/translated/bom.js:609
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:612
+#: templates/js/translated/bom.js:624
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:619
+#: templates/js/translated/bom.js:631
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:668 templates/js/translated/bom.js:757
+#: templates/js/translated/bom.js:680 templates/js/translated/bom.js:769
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:728
+#: templates/js/translated/bom.js:740
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:730
+#: templates/js/translated/bom.js:742
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:732
+#: templates/js/translated/bom.js:744
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:734 templates/js/translated/bom.js:908
+#: templates/js/translated/bom.js:746 templates/js/translated/bom.js:920
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:736 templates/js/translated/bom.js:891
+#: templates/js/translated/bom.js:748 templates/js/translated/bom.js:903
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:830 templates/js/translated/build.js:915
+#: templates/js/translated/bom.js:842 templates/js/translated/build.js:915
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:886
+#: templates/js/translated/bom.js:898
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:1086 templates/js/translated/build.js:1155
+#: templates/js/translated/bom.js:1100 templates/js/translated/build.js:1155
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1108
+#: templates/js/translated/bom.js:1122
msgid "Inherited from parent BOM"
msgstr ""
@@ -7725,9 +7818,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1206
-#: templates/js/translated/part.js:1617 templates/js/translated/stock.js:1512
-#: templates/js/translated/stock.js:2321
+#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1213
+#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1520
+#: templates/js/translated/stock.js:2479
msgid "Select"
msgstr ""
@@ -7735,7 +7828,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2540
+#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2698
msgid "No user information"
msgstr ""
@@ -7808,34 +7901,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:511
-#: templates/js/translated/part.js:596
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:517
+#: templates/js/translated/part.js:602
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:515
-#: templates/js/translated/part.js:600
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:521
+#: templates/js/translated/part.js:606
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:690
+#: templates/js/translated/company.js:631 templates/js/translated/part.js:696
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:732
+#: templates/js/translated/company.js:668 templates/js/translated/part.js:738
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:733
+#: templates/js/translated/company.js:669 templates/js/translated/part.js:739
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:750
+#: templates/js/translated/company.js:688 templates/js/translated/part.js:756
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:762
+#: templates/js/translated/company.js:699 templates/js/translated/part.js:768
msgid "Delete Parameter"
msgstr ""
@@ -7844,12 +7937,12 @@ msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:420
+#: templates/js/translated/filters.js:429
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:421
+#: templates/js/translated/filters.js:430
msgid "false"
msgstr ""
@@ -7869,7 +7962,7 @@ msgstr ""
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:329
+#: templates/js/translated/filters.js:338
msgid "Create filter"
msgstr ""
@@ -7898,20 +7991,20 @@ msgstr ""
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1080 templates/modals.html:19
+#: templates/js/translated/forms.js:1082 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1471
+#: templates/js/translated/forms.js:1487
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1675
+#: templates/js/translated/forms.js:1691
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1895
+#: templates/js/translated/forms.js:1930
msgid "Clear input"
msgstr ""
@@ -7924,7 +8017,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1042
+#: templates/js/translated/stock.js:1050
msgid "Select Stock Items"
msgstr ""
@@ -7974,12 +8067,12 @@ msgid "Select Label Template"
msgstr ""
#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
-#: templates/js/translated/modals.js:599
+#: templates/js/translated/modals.js:610
msgid "Cancel"
msgstr ""
#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:666 templates/js/translated/modals.js:969
+#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:982
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
@@ -7988,47 +8081,47 @@ msgstr ""
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:381
+#: templates/js/translated/modals.js:392
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:540
+#: templates/js/translated/modals.js:551
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:598
+#: templates/js/translated/modals.js:609
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:655
+#: templates/js/translated/modals.js:666
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:921
+#: templates/js/translated/modals.js:934
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:921
+#: templates/js/translated/modals.js:934
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:946
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1030
+#: templates/js/translated/modals.js:1043
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1045
+#: templates/js/translated/modals.js:1058
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1046
+#: templates/js/translated/modals.js:1059
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1069
+#: templates/js/translated/modals.js:1082
msgid "Error requesting form data"
msgstr ""
@@ -8052,23 +8145,24 @@ msgstr ""
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:236
+#: templates/js/translated/model_renderers.js:249
+#: templates/js/translated/model_renderers.js:270
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:253
+#: templates/js/translated/model_renderers.js:287
msgid "Shipment ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:273
+#: templates/js/translated/model_renderers.js:307
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:310
+#: templates/js/translated/model_renderers.js:344
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:339
+#: templates/js/translated/model_renderers.js:373
msgid "Supplier Part ID"
msgstr ""
@@ -8116,7 +8210,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2123
+#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2131
msgid "Stock Status"
msgstr ""
@@ -8140,7 +8234,7 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:790 templates/js/translated/part.js:803
+#: templates/js/translated/order.js:790 templates/js/translated/part.js:809
msgid "No purchase orders found"
msgstr ""
@@ -8165,7 +8259,7 @@ msgid "Total"
msgstr ""
#: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163
-#: templates/js/translated/part.js:1834 templates/js/translated/part.js:2045
+#: templates/js/translated/part.js:1841 templates/js/translated/part.js:2052
msgid "Unit Price"
msgstr ""
@@ -8181,7 +8275,7 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1166 templates/js/translated/part.js:935
+#: templates/js/translated/order.js:1166 templates/js/translated/part.js:942
msgid "Receive line item"
msgstr ""
@@ -8250,7 +8344,7 @@ msgid "Delete Stock Allocation"
msgstr ""
#: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048
-#: templates/js/translated/stock.js:1428
+#: templates/js/translated/stock.js:1436
msgid "Shipped to customer"
msgstr ""
@@ -8378,144 +8472,148 @@ msgstr ""
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:412
+#: templates/js/translated/part.js:351
+msgid "Create Part Variant"
+msgstr ""
+
+#: templates/js/translated/part.js:418
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:414
+#: templates/js/translated/part.js:420
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:419
+#: templates/js/translated/part.js:425
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:421
+#: templates/js/translated/part.js:427
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:438
+#: templates/js/translated/part.js:444
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:448
+#: templates/js/translated/part.js:454
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:451
+#: templates/js/translated/part.js:457
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:475
+#: templates/js/translated/part.js:481
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:503 templates/js/translated/part.js:588
+#: templates/js/translated/part.js:509 templates/js/translated/part.js:594
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:507 templates/js/translated/part.js:592
+#: templates/js/translated/part.js:513 templates/js/translated/part.js:598
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:519
+#: templates/js/translated/part.js:525
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:529
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:638
+#: templates/js/translated/part.js:644
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1005
+#: templates/js/translated/part.js:1012
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1029
+#: templates/js/translated/part.js:1036
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1096 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:1363
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1266
+#: templates/js/translated/part.js:1273
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1289
+#: templates/js/translated/part.js:1296
#: templates/js/translated/table_filters.js:430
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1380 templates/js/translated/part.js:1552
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559
+#: templates/js/translated/stock.js:2440
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1396
+#: templates/js/translated/part.js:1403
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1571 templates/js/translated/stock.js:2301
+#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2459
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1635
+#: templates/js/translated/part.js:1642
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1649 templates/js/translated/stock.js:2345
+#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2503
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1693
+#: templates/js/translated/part.js:1700
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1744 templates/js/translated/stock.js:1234
+#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1242
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1745 templates/js/translated/stock.js:1235
+#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1243
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1751
+#: templates/js/translated/part.js:1758
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1773
+#: templates/js/translated/part.js:1780
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1787
+#: templates/js/translated/part.js:1794
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1812
+#: templates/js/translated/part.js:1819
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1867
+#: templates/js/translated/part.js:1874
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1868
+#: templates/js/translated/part.js:1875
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1969
+#: templates/js/translated/part.js:1976
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1988
+#: templates/js/translated/part.js:1995
msgid "Single Price Difference"
msgstr ""
@@ -8589,340 +8687,344 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:73
+#: templates/js/translated/stock.js:74
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:173
+#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:181
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/stock.js:93 templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:94 templates/js/translated/stock.js:183
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/stock.js:101
+#: templates/js/translated/stock.js:102
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:110
+#: templates/js/translated/stock.js:111
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:146
+#: templates/js/translated/stock.js:154
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:186
+#: templates/js/translated/stock.js:194
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:225
+#: templates/js/translated/stock.js:233
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:231
+#: templates/js/translated/stock.js:239
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:374
+#: templates/js/translated/stock.js:382
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:387
+#: templates/js/translated/stock.js:395
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:412
+#: templates/js/translated/stock.js:420
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:416 templates/js/translated/stock.js:417
+#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:433
+#: templates/js/translated/stock.js:441
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:453
+#: templates/js/translated/stock.js:461
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:462
+#: templates/js/translated/stock.js:470
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:507
+#: templates/js/translated/stock.js:515
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:518
+#: templates/js/translated/stock.js:526
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:527
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:628
+#: templates/js/translated/stock.js:636
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:629
+#: templates/js/translated/stock.js:637
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:706
+#: templates/js/translated/stock.js:714
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:707
+#: templates/js/translated/stock.js:715
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:709
+#: templates/js/translated/stock.js:717
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:710
+#: templates/js/translated/stock.js:718
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:796
+#: templates/js/translated/stock.js:804
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:797
+#: templates/js/translated/stock.js:805
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:892
+#: templates/js/translated/stock.js:900
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:893
+#: templates/js/translated/stock.js:901
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:899
+#: templates/js/translated/stock.js:907
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:900
+#: templates/js/translated/stock.js:908
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:904
+#: templates/js/translated/stock.js:912
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:905
+#: templates/js/translated/stock.js:913
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:909
+#: templates/js/translated/stock.js:917
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:910 users/models.py:206
+#: templates/js/translated/stock.js:918 users/models.py:208
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:914 templates/stock_table.html:58
+#: templates/js/translated/stock.js:922 templates/stock_table.html:58
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1003
+#: templates/js/translated/stock.js:1011
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1003
+#: templates/js/translated/stock.js:1011
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1043
+#: templates/js/translated/stock.js:1051
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1201
+#: templates/js/translated/stock.js:1209
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1211
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1208
+#: templates/js/translated/stock.js:1216
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1230
+#: templates/js/translated/stock.js:1238
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1256
+#: templates/js/translated/stock.js:1264
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1313
+#: templates/js/translated/stock.js:1321
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1420
+#: templates/js/translated/stock.js:1428
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1424
+#: templates/js/translated/stock.js:1432
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1432
+#: templates/js/translated/stock.js:1440
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1438
+#: templates/js/translated/stock.js:1446
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1596
+#: templates/js/translated/stock.js:1604
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1601
+#: templates/js/translated/stock.js:1609
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1612
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/stock.js:1616
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1610
+#: templates/js/translated/stock.js:1618
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1616
+#: templates/js/translated/stock.js:1624
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1626
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1620
+#: templates/js/translated/stock.js:1628
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1625
+#: templates/js/translated/stock.js:1633
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1632
+#: templates/js/translated/stock.js:1640
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1634
+#: templates/js/translated/stock.js:1642
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1644
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1640
+#: templates/js/translated/stock.js:1648
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1698
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1763
+#: templates/js/translated/stock.js:1771
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1801
+#: templates/js/translated/stock.js:1809
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1822 templates/js/translated/stock.js:1870
+#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:1878
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1910
+#: templates/js/translated/stock.js:1918
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1937
+#: templates/js/translated/stock.js:1945
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1939
+#: templates/js/translated/stock.js:1947
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:2138
+#: templates/js/translated/stock.js:2146
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2152
+#: templates/js/translated/stock.js:2160
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2153
+#: templates/js/translated/stock.js:2161
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2377
+#: templates/js/translated/stock.js:2340
+msgid "Allocated Quantity"
+msgstr ""
+
+#: templates/js/translated/stock.js:2535
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:2399
+#: templates/js/translated/stock.js:2557
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2424
+#: templates/js/translated/stock.js:2582
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2443
+#: templates/js/translated/stock.js:2601
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2462
+#: templates/js/translated/stock.js:2620
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2480
+#: templates/js/translated/stock.js:2638
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2503
+#: templates/js/translated/stock.js:2661
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2511
+#: templates/js/translated/stock.js:2669
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2552
+#: templates/js/translated/stock.js:2710
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2553
+#: templates/js/translated/stock.js:2711
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2604
+#: templates/js/translated/stock.js:2762
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2655
+#: templates/js/translated/stock.js:2813
msgid "Uninstall Stock Item"
msgstr ""
@@ -9194,11 +9296,11 @@ msgstr ""
msgid "Sell"
msgstr ""
-#: templates/navbar.html:113
+#: templates/navbar.html:114
msgid "Logout"
msgstr ""
-#: templates/navbar.html:115
+#: templates/navbar.html:116
msgid "Login"
msgstr ""
@@ -9246,31 +9348,43 @@ msgstr ""
msgid "Server is deployed using docker"
msgstr ""
-#: templates/stats.html:40
-msgid "Server status"
+#: templates/stats.html:39
+msgid "Plugin Support"
msgstr ""
#: templates/stats.html:43
-msgid "Healthy"
+msgid "Plugin support enabled"
msgstr ""
#: templates/stats.html:45
-msgid "Issues detected"
+msgid "Plugin support disabled"
msgstr ""
#: templates/stats.html:52
-msgid "Background Worker"
+msgid "Server status"
msgstr ""
#: templates/stats.html:55
+msgid "Healthy"
+msgstr ""
+
+#: templates/stats.html:57
+msgid "Issues detected"
+msgstr ""
+
+#: templates/stats.html:64
+msgid "Background Worker"
+msgstr ""
+
+#: templates/stats.html:67
msgid "Background worker not running"
msgstr ""
-#: templates/stats.html:63
+#: templates/stats.html:75
msgid "Email Settings"
msgstr ""
-#: templates/stats.html:66
+#: templates/stats.html:78
msgid "Email settings not configured"
msgstr ""
@@ -9366,35 +9480,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:193
+#: users/models.py:195
msgid "Permission set"
msgstr ""
-#: users/models.py:201
+#: users/models.py:203
msgid "Group"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
msgid "View"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
msgid "Permission to view items"
msgstr ""
-#: users/models.py:206
+#: users/models.py:208
msgid "Permission to add items"
msgstr ""
-#: users/models.py:208
+#: users/models.py:210
msgid "Change"
msgstr ""
-#: users/models.py:208
+#: users/models.py:210
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:210
+#: users/models.py:212
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/id/LC_MESSAGES/django.po b/InvenTree/locale/id/LC_MESSAGES/django.po
index 3bea5cd46f..0c357b94cc 100644
--- a/InvenTree/locale/id/LC_MESSAGES/django.po
+++ b/InvenTree/locale/id/LC_MESSAGES/django.po
@@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-01-10 03:54+0000\n"
-"PO-Revision-Date: 2022-01-10 03:57\n"
+"POT-Creation-Date: 2022-01-29 00:17+0000\n"
+"PO-Revision-Date: 2022-01-29 01:11\n"
"Last-Translator: \n"
"Language-Team: Indonesian\n"
"Language: id_ID\n"
@@ -18,15 +18,15 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 138\n"
-#: InvenTree/api.py:64
+#: InvenTree/api.py:55
msgid "API endpoint not found"
msgstr "API endpoint tidak ditemukan"
-#: InvenTree/api.py:110
+#: InvenTree/api.py:101
msgid "No action specified"
msgstr "Tidak ada tindakan yang ditentukan"
-#: InvenTree/api.py:124
+#: InvenTree/api.py:116
msgid "No matching action found"
msgstr "Aksi tidak ditemukan"
@@ -80,41 +80,41 @@ msgstr "Konfirmasi alamat email"
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:437
+#: InvenTree/helpers.py:439
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:444 order/models.py:279 order/models.py:420
+#: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425
#: stock/views.py:1231
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:447
+#: InvenTree/helpers.py:449
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:469 InvenTree/helpers.py:472 InvenTree/helpers.py:475
-#: InvenTree/helpers.py:500
+#: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477
+#: InvenTree/helpers.py:502
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:510
+#: InvenTree/helpers.py:512
#, python-brace-format
msgid "Invalid group {group}"
msgstr ""
-#: InvenTree/helpers.py:516
+#: InvenTree/helpers.py:518
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:522
+#: InvenTree/helpers.py:524
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:526
+#: InvenTree/helpers.py:528
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
@@ -127,7 +127,7 @@ msgstr ""
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:132 stock/models.py:1967
+#: InvenTree/models.py:132 stock/models.py:1995
#: templates/js/translated/attachment.js:119
msgid "Attachment"
msgstr ""
@@ -137,15 +137,15 @@ msgid "Select file to attach"
msgstr ""
#: InvenTree/models.py:139 company/models.py:131 company/models.py:348
-#: company/models.py:564 order/models.py:124 part/models.py:828
+#: company/models.py:564 order/models.py:127 part/models.py:830
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1317
+#: templates/js/translated/company.js:829 templates/js/translated/part.js:1324
msgid "Link"
msgstr ""
-#: InvenTree/models.py:140 build/models.py:330 part/models.py:829
-#: stock/models.py:527
+#: InvenTree/models.py:140 build/models.py:332 part/models.py:831
+#: stock/models.py:529
msgid "Link to external URL"
msgstr ""
@@ -157,10 +157,11 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213
-#: common/models.py:1214 part/models.py:2258 part/models.py:2278
+#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1223
+#: common/models.py:1224 common/models.py:1452 common/models.py:1453
+#: part/models.py:2265 part/models.py:2285
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2534
+#: templates/js/translated/stock.js:2692
msgid "User"
msgstr ""
@@ -197,42 +198,42 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:277 InvenTree/models.py:278 company/models.py:415
-#: label/models.py:112 part/models.py:772 part/models.py:2442
-#: plugin/models.py:40 report/models.py:181
+#: InvenTree/models.py:277 InvenTree/models.py:278 common/models.py:1438
+#: company/models.py:415 label/models.py:112 part/models.py:774
+#: part/models.py:2449 plugin/models.py:40 report/models.py:181
#: templates/InvenTree/settings/mixins/urls.html:13
-#: templates/InvenTree/settings/plugin.html:47
-#: templates/InvenTree/settings/plugin.html:124
+#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin.html:125
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:279
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:561
-#: templates/js/translated/part.js:700 templates/js/translated/part.js:1624
-#: templates/js/translated/stock.js:2327
+#: templates/InvenTree/settings/settings.html:282
+#: templates/js/translated/company.js:641 templates/js/translated/part.js:567
+#: templates/js/translated/part.js:706 templates/js/translated/part.js:1631
+#: templates/js/translated/stock.js:2485
msgid "Name"
msgstr ""
-#: InvenTree/models.py:284 build/models.py:207
+#: InvenTree/models.py:284 build/models.py:209
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:73 label/models.py:119
-#: order/models.py:122 part/models.py:795 part/templates/part/category.html:74
+#: order/models.py:125 part/models.py:797 part/templates/part/category.html:74
#: part/templates/part/part_base.html:163
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:93
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:327 templates/js/translated/bom.js:540
+#: templates/js/translated/bom.js:339 templates/js/translated/bom.js:552
#: templates/js/translated/build.js:1682 templates/js/translated/company.js:345
#: templates/js/translated/company.js:551
#: templates/js/translated/company.js:840 templates/js/translated/order.js:836
#: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258
-#: templates/js/translated/part.js:620 templates/js/translated/part.js:992
-#: templates/js/translated/part.js:1077 templates/js/translated/part.js:1247
-#: templates/js/translated/part.js:1643 templates/js/translated/part.js:1712
-#: templates/js/translated/stock.js:1569 templates/js/translated/stock.js:2339
-#: templates/js/translated/stock.js:2384
+#: templates/js/translated/part.js:626 templates/js/translated/part.js:999
+#: templates/js/translated/part.js:1084 templates/js/translated/part.js:1254
+#: templates/js/translated/part.js:1650 templates/js/translated/part.js:1719
+#: templates/js/translated/stock.js:1577 templates/js/translated/stock.js:2314
+#: templates/js/translated/stock.js:2497 templates/js/translated/stock.js:2542
msgid "Description"
msgstr ""
@@ -244,7 +245,7 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:65 part/models.py:2727
+#: InvenTree/serializers.py:65 part/models.py:2734
msgid "Must be a valid number"
msgstr ""
@@ -252,83 +253,83 @@ msgstr ""
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:661
msgid "German"
msgstr ""
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:662
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:663
msgid "English"
msgstr ""
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:664
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:665
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:666
msgid "French"
msgstr ""
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:667
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:668
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:669
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:670
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:671
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:672
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:673
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:674
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:675
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:676
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:677
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:678
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:679
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:680
msgid "Chinese"
msgstr ""
@@ -374,7 +375,7 @@ msgstr ""
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:143 order/models.py:941
+#: InvenTree/status_codes.py:143 order/models.py:961
#: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255
msgid "Shipped"
msgstr ""
@@ -455,7 +456,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2064
+#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2072
msgid "Merged stock items"
msgstr ""
@@ -543,56 +544,56 @@ msgstr ""
msgid "System Information"
msgstr ""
-#: barcodes/api.py:54 barcodes/api.py:151
+#: barcodes/api.py:54 barcodes/api.py:152
msgid "Must provide barcode_data parameter"
msgstr ""
-#: barcodes/api.py:127
+#: barcodes/api.py:128
msgid "No match found for barcode data"
msgstr ""
-#: barcodes/api.py:129
+#: barcodes/api.py:130
msgid "Match found for barcode data"
msgstr ""
-#: barcodes/api.py:154
+#: barcodes/api.py:155
msgid "Must provide stockitem parameter"
msgstr ""
-#: barcodes/api.py:161
+#: barcodes/api.py:162
msgid "No matching stock item found"
msgstr ""
-#: barcodes/api.py:191
+#: barcodes/api.py:193
msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:195
+#: barcodes/api.py:197
msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:199
+#: barcodes/api.py:201
msgid "Barcode already matches Part"
msgstr ""
-#: barcodes/api.py:205 barcodes/api.py:217
+#: barcodes/api.py:207 barcodes/api.py:219
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:223
+#: barcodes/api.py:225
msgid "Barcode associated with Stock Item"
msgstr ""
-#: build/forms.py:36 build/models.py:1286
+#: build/forms.py:36 build/models.py:1293
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:35 common/models.py:1253
+#: build/templates/build/detail.html:35 common/models.py:1263
#: company/forms.py:42 company/templates/company/supplier_part.html:251
-#: order/models.py:796 order/models.py:1207 order/serializers.py:810
+#: order/models.py:805 order/models.py:1229 order/serializers.py:816
#: order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:145
-#: part/forms.py:161 part/forms.py:177 part/models.py:2629
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144
+#: part/forms.py:160 part/forms.py:176 part/models.py:2636
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:962 part/templates/part/detail.html:1048
+#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -603,7 +604,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:181
#: stock/templates/stock/item_base.html:262
#: stock/templates/stock/item_base.html:270
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:555
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:567
#: templates/js/translated/build.js:295 templates/js/translated/build.js:495
#: templates/js/translated/build.js:689 templates/js/translated/build.js:699
#: templates/js/translated/build.js:1075 templates/js/translated/build.js:1422
@@ -611,11 +612,11 @@ msgstr ""
#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056
#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859
#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036
-#: templates/js/translated/order.js:2150 templates/js/translated/part.js:900
-#: templates/js/translated/part.js:1855 templates/js/translated/part.js:1978
-#: templates/js/translated/part.js:2056 templates/js/translated/stock.js:383
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:750
-#: templates/js/translated/stock.js:2519 templates/js/translated/stock.js:2621
+#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906
+#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985
+#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:391
+#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758
+#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2779
msgid "Quantity"
msgstr ""
@@ -623,9 +624,9 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:41 order/serializers.py:814 stock/forms.py:81
-#: stock/serializers.py:314 templates/js/translated/stock.js:230
-#: templates/js/translated/stock.js:384
+#: build/forms.py:41 order/serializers.py:820 stock/forms.py:81
+#: stock/serializers.py:314 templates/js/translated/stock.js:238
+#: templates/js/translated/stock.js:392
msgid "Serial Numbers"
msgstr ""
@@ -649,18 +650,18 @@ msgstr ""
msgid "Confirm build cancellation"
msgstr ""
-#: build/models.py:133
+#: build/models.py:135
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:139 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:457
+#: templates/js/translated/build.js:457 templates/js/translated/stock.js:2290
msgid "Build Order"
msgstr ""
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:140 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:92
#: order/templates/order/so_sidebar.html:13
@@ -670,40 +671,40 @@ msgstr ""
msgid "Build Orders"
msgstr ""
-#: build/models.py:198
+#: build/models.py:200
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:210 order/models.py:536
-#: order/models.py:803 part/models.py:2638
+#: build/models.py:201 order/models.py:213 order/models.py:541
+#: order/models.py:812 part/models.py:2645
#: 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/translated/bom.js:547 templates/js/translated/build.js:1179
+#: templates/js/translated/bom.js:559 templates/js/translated/build.js:1179
#: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144
msgid "Reference"
msgstr ""
-#: build/models.py:210
+#: build/models.py:212
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:219 build/templates/build/build_base.html:164
+#: build/models.py:221 build/templates/build/build_base.html:164
#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:222
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:225 build/templates/build/build_base.html:77
+#: build/models.py:227 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
-#: order/models.py:856 order/models.py:930
-#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
-#: part/models.py:2204 part/models.py:2220 part/models.py:2239
-#: part/models.py:2256 part/models.py:2358 part/models.py:2480
-#: part/models.py:2613 part/models.py:2920 part/serializers.py:658
+#: order/models.py:876 order/models.py:950
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359
+#: part/models.py:2211 part/models.py:2227 part/models.py:2246
+#: part/models.py:2263 part/models.py:2365 part/models.py:2487
+#: part/models.py:2620 part/models.py:2927 part/serializers.py:658
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -713,205 +714,205 @@ msgstr ""
#: templates/InvenTree/search.html:80
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
-#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:326
-#: templates/js/translated/bom.js:505 templates/js/translated/build.js:680
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:338
+#: templates/js/translated/bom.js:517 templates/js/translated/build.js:680
#: templates/js/translated/build.js:1048 templates/js/translated/build.js:1419
#: templates/js/translated/build.js:1687 templates/js/translated/company.js:492
#: templates/js/translated/company.js:749 templates/js/translated/order.js:84
#: templates/js/translated/order.js:586 templates/js/translated/order.js:1004
#: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933
-#: templates/js/translated/order.js:2128 templates/js/translated/part.js:977
-#: templates/js/translated/part.js:1058 templates/js/translated/part.js:1225
-#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:719
-#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1526
-#: templates/js/translated/stock.js:2609
+#: templates/js/translated/order.js:2128 templates/js/translated/part.js:984
+#: templates/js/translated/part.js:1065 templates/js/translated/part.js:1232
+#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727
+#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1534
+#: templates/js/translated/stock.js:2767
msgid "Part"
msgstr ""
-#: build/models.py:233
+#: build/models.py:235
msgid "Select part to build"
msgstr ""
-#: build/models.py:238
+#: build/models.py:240
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:242
+#: build/models.py:244
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 templates/js/translated/build.js:1407
+#: build/models.py:249 templates/js/translated/build.js:1407
#: templates/js/translated/order.js:1564
msgid "Source Location"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:256
+#: build/models.py:258
msgid "Destination Location"
msgstr ""
-#: build/models.py:260
+#: build/models.py:262
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:264
+#: build/models.py:266
msgid "Build Quantity"
msgstr ""
-#: build/models.py:267
+#: build/models.py:269
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:271
+#: build/models.py:273
msgid "Completed items"
msgstr ""
-#: build/models.py:273
+#: build/models.py:275
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:277 part/templates/part/part_base.html:234
+#: build/models.py:279 part/templates/part/part_base.html:234
msgid "Build Status"
msgstr ""
-#: build/models.py:281
+#: build/models.py:283
msgid "Build status code"
msgstr ""
-#: build/models.py:285 stock/models.py:531
+#: build/models.py:287 stock/models.py:533
msgid "Batch Code"
msgstr ""
-#: build/models.py:289
+#: build/models.py:291
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:126 part/models.py:967
+#: build/models.py:294 order/models.py:129 part/models.py:969
#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:558
+#: build/models.py:298 order/models.py:563
msgid "Target completion date"
msgstr ""
-#: build/models.py:297
+#: build/models.py:299
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:252
+#: build/models.py:302 order/models.py:255
#: templates/js/translated/build.js:1758
msgid "Completion Date"
msgstr ""
-#: build/models.py:306
+#: build/models.py:308
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:1729
+#: build/models.py:316 templates/js/translated/build.js:1729
msgid "Issued by"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:323 build/templates/build/build_base.html:185
-#: build/templates/build/detail.html:116 order/models.py:140
+#: build/models.py:325 build/templates/build/build_base.html:185
+#: build/templates/build/detail.html:116 order/models.py:143
#: order/templates/order/order_base.html:170
-#: order/templates/order/sales_order_base.html:182 part/models.py:971
+#: order/templates/order/sales_order_base.html:182 part/models.py:973
#: report/templates/report/inventree_build_order_base.html:159
#: templates/js/translated/build.js:1741 templates/js/translated/order.js:864
msgid "Responsible"
msgstr ""
-#: build/models.py:324
+#: build/models.py:326
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:329 build/templates/build/detail.html:102
+#: build/models.py:331 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:525
+#: part/templates/part/part_base.html:354 stock/models.py:527
#: stock/templates/stock/item_base.html:373
msgid "External Link"
msgstr ""
-#: build/models.py:334 build/serializers.py:201
+#: build/models.py:336 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
-#: order/models.py:144 order/models.py:805 order/models.py:1051
+#: order/models.py:147 order/models.py:814 order/models.py:1071
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:17 part/models.py:956
-#: part/templates/part/detail.html:120 part/templates/part/part_sidebar.html:50
+#: order/templates/order/so_sidebar.html:17 part/models.py:958
+#: part/templates/part/detail.html:137 part/templates/part/part_sidebar.html:54
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:597
-#: stock/models.py:1867 stock/models.py:1973 stock/serializers.py:332
-#: stock/serializers.py:639 stock/serializers.py:737 stock/serializers.py:869
-#: stock/templates/stock/stock_sidebar.html:21
-#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:711
+#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:599
+#: stock/models.py:1895 stock/models.py:2001 stock/serializers.py:332
+#: stock/serializers.py:640 stock/serializers.py:738 stock/serializers.py:870
+#: stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:723
#: templates/js/translated/company.js:845 templates/js/translated/order.js:1149
#: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280
-#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1795
+#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1803
msgid "Notes"
msgstr ""
-#: build/models.py:335
+#: build/models.py:337
msgid "Extra build notes"
msgstr ""
-#: build/models.py:710
+#: build/models.py:717
msgid "No build output specified"
msgstr ""
-#: build/models.py:713
+#: build/models.py:720
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:716
+#: build/models.py:723
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1108
+#: build/models.py:1115
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1117
+#: build/models.py:1124
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1127
+#: build/models.py:1134
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1133 order/models.py:1167
+#: build/models.py:1140 order/models.py:1189
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1139
+#: build/models.py:1146
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1196
+#: build/models.py:1203
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1256 stock/templates/stock/item_base.html:345
+#: build/models.py:1263 stock/templates/stock/item_base.html:345
#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1660
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1257
+#: build/models.py:1264
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1273 build/serializers.py:388 order/serializers.py:690
-#: order/serializers.py:708 stock/serializers.py:577 stock/serializers.py:695
+#: build/models.py:1280 build/serializers.py:388 order/serializers.py:696
+#: order/serializers.py:714 stock/serializers.py:578 stock/serializers.py:696
#: stock/templates/stock/item_base.html:9
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:367
@@ -920,24 +921,24 @@ msgstr ""
#: templates/js/translated/order.js:85 templates/js/translated/order.js:1577
#: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837
#: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030
-#: templates/js/translated/stock.js:555 templates/js/translated/stock.js:720
-#: templates/js/translated/stock.js:2470
+#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728
+#: templates/js/translated/stock.js:2628
msgid "Stock Item"
msgstr ""
-#: build/models.py:1274
+#: build/models.py:1281
msgid "Source stock item"
msgstr ""
-#: build/models.py:1287
+#: build/models.py:1294
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1295
+#: build/models.py:1302
msgid "Install into"
msgstr ""
-#: build/models.py:1296
+#: build/models.py:1303
msgid "Destination stock item"
msgstr ""
@@ -962,16 +963,16 @@ msgid "This build output is not fully allocated"
msgstr ""
#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294
-#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:730
-#: stock/serializers.py:971 stock/templates/stock/item_base.html:313
+#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:731
+#: stock/serializers.py:972 stock/templates/stock/item_base.html:313
#: templates/js/translated/barcode.js:384
#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:480
#: templates/js/translated/build.js:1087 templates/js/translated/order.js:508
#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955
#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044
-#: templates/js/translated/part.js:179 templates/js/translated/stock.js:556
-#: templates/js/translated/stock.js:721 templates/js/translated/stock.js:928
-#: templates/js/translated/stock.js:1676 templates/js/translated/stock.js:2411
+#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564
+#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936
+#: templates/js/translated/stock.js:1684 templates/js/translated/stock.js:2569
msgid "Location"
msgstr ""
@@ -980,12 +981,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:137
-#: build/templates/build/detail.html:63 order/models.py:552
+#: build/templates/build/detail.html:63 order/models.py:557
#: order/serializers.py:247 stock/templates/stock/item_base.html:187
#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1716
#: templates/js/translated/order.js:591 templates/js/translated/order.js:840
-#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1651
-#: templates/js/translated/stock.js:2488 templates/js/translated/stock.js:2637
+#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:2646 templates/js/translated/stock.js:2795
msgid "Status"
msgstr ""
@@ -1021,8 +1022,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:313 build/serializers.py:362 part/models.py:2753
-#: part/models.py:2912
+#: build/serializers.py:313 build/serializers.py:362 part/models.py:2760
+#: part/models.py:2919
msgid "BOM Item"
msgstr ""
@@ -1038,16 +1039,16 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:394 stock/serializers.py:584
+#: build/serializers.py:394 stock/serializers.py:585
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:408 order/models.py:277 order/serializers.py:240
-#: stock/models.py:365 stock/models.py:1077 stock/serializers.py:305
+#: build/serializers.py:408 order/models.py:280 order/serializers.py:240
+#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:450 order/serializers.py:741
+#: build/serializers.py:450 order/serializers.py:747
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1060,7 +1061,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:491 order/serializers.py:984
+#: build/serializers.py:491 order/serializers.py:990
msgid "Allocation items must be provided"
msgstr ""
@@ -1164,13 +1165,13 @@ msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:171
-#: build/templates/build/detail.html:95 order/models.py:927
-#: order/models.py:1023 order/templates/order/sales_order_base.html:9
+#: build/templates/build/detail.html:95 order/models.py:947
+#: order/models.py:1043 order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/order.js:1218
+#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2304
msgid "Sales Order"
msgstr ""
@@ -1224,7 +1225,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:50 order/models.py:878 stock/forms.py:136
+#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:136
#: templates/js/translated/order.js:592 templates/js/translated/order.js:1138
msgid "Destination"
msgstr ""
@@ -1239,7 +1240,7 @@ msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:331
-#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2644
+#: templates/js/translated/stock.js:1673 templates/js/translated/stock.js:2802
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:238
msgid "Batch"
@@ -1343,9 +1344,9 @@ msgstr ""
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:107
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:196
-#: part/templates/part/part_sidebar.html:48 stock/templates/stock/item.html:95
-#: stock/templates/stock/stock_sidebar.html:19
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:213
+#: part/templates/part/part_sidebar.html:52 stock/templates/stock/item.html:112
+#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr ""
@@ -1360,8 +1361,8 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:108
#: order/templates/order/sales_order_detail.html:127
#: order/templates/order/sales_order_detail.html:186
-#: part/templates/part/detail.html:124 stock/templates/stock/item.html:115
-#: stock/templates/stock/item.html:205
+#: part/templates/part/detail.html:141 stock/templates/stock/item.html:132
+#: stock/templates/stock/item.html:235
msgid "Edit Notes"
msgstr ""
@@ -1373,7 +1374,7 @@ msgstr ""
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:303
+#: build/templates/build/index.html:18 part/templates/part/detail.html:320
msgid "New Build Order"
msgstr ""
@@ -1453,23 +1454,23 @@ msgstr ""
msgid "Delete Build Order"
msgstr ""
-#: common/files.py:67
+#: common/files.py:65
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
-#: common/files.py:69
+#: common/files.py:67
msgid "Error reading file (invalid encoding)"
msgstr ""
-#: common/files.py:74
+#: common/files.py:72
msgid "Error reading file (invalid format)"
msgstr ""
-#: common/files.py:76
+#: common/files.py:74
msgid "Error reading file (incorrect dimension)"
msgstr ""
-#: common/files.py:78
+#: common/files.py:76
msgid "Error reading file (data could be corrupted)"
msgstr ""
@@ -1490,740 +1491,828 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:344 common/models.py:998 common/models.py:1206
-msgid "Settings key (must be unique - case insensitive"
+#: common/models.py:352
+msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:346
+#: common/models.py:354
msgid "Settings value"
msgstr ""
-#: common/models.py:380
+#: common/models.py:388
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:400
+#: common/models.py:408
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:411
+#: common/models.py:419
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:434
+#: common/models.py:442
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:553
+#: common/models.py:561
msgid "No group"
msgstr ""
-#: common/models.py:595
+#: common/models.py:603
msgid "Restart required"
msgstr ""
-#: common/models.py:596
+#: common/models.py:604
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:603
+#: common/models.py:611
msgid "InvenTree Instance Name"
msgstr ""
-#: common/models.py:605
+#: common/models.py:613
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:609
+#: common/models.py:617
msgid "Use instance name"
msgstr ""
-#: common/models.py:610
+#: common/models.py:618
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:616 company/models.py:100 company/models.py:101
+#: common/models.py:624 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr ""
-#: common/models.py:617
+#: common/models.py:625
msgid "Internal company name"
msgstr ""
-#: common/models.py:622
+#: common/models.py:630
msgid "Base URL"
msgstr ""
-#: common/models.py:623
+#: common/models.py:631
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:629
+#: common/models.py:637
msgid "Default Currency"
msgstr ""
-#: common/models.py:630
+#: common/models.py:638
msgid "Default currency"
msgstr ""
-#: common/models.py:636
+#: common/models.py:644
msgid "Download from URL"
msgstr ""
-#: common/models.py:637
+#: common/models.py:645
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:643 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:651 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
-#: common/models.py:644
+#: common/models.py:652
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:650
+#: common/models.py:658
msgid "IPN Regex"
msgstr ""
-#: common/models.py:651
+#: common/models.py:659
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:655
+#: common/models.py:663
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:656
+#: common/models.py:664
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:662
+#: common/models.py:670
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:663
+#: common/models.py:671
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:669
+#: common/models.py:677
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:670
+#: common/models.py:678
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:676
+#: common/models.py:684
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:677
+#: common/models.py:685
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:683
+#: common/models.py:691
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:684
+#: common/models.py:692
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:690
+#: common/models.py:698
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:691
+#: common/models.py:699
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:697 part/models.py:2482 report/models.py:187
+#: common/models.py:705 part/models.py:2489 report/models.py:187
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:422
msgid "Template"
msgstr ""
-#: common/models.py:698
+#: common/models.py:706
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:704 part/models.py:919 templates/js/translated/bom.js:1068
+#: common/models.py:712 part/models.py:921 templates/js/translated/bom.js:1082
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:434
msgid "Assembly"
msgstr ""
-#: common/models.py:705
+#: common/models.py:713
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:711 part/models.py:925
+#: common/models.py:719 part/models.py:927
#: templates/js/translated/table_filters.js:438
msgid "Component"
msgstr ""
-#: common/models.py:712
+#: common/models.py:720
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:718 part/models.py:936
+#: common/models.py:726 part/models.py:938
msgid "Purchaseable"
msgstr ""
-#: common/models.py:719
+#: common/models.py:727
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:725 part/models.py:941
+#: common/models.py:733 part/models.py:943
#: templates/js/translated/table_filters.js:446
msgid "Salable"
msgstr ""
-#: common/models.py:726
+#: common/models.py:734
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:732 part/models.py:931
+#: common/models.py:740 part/models.py:933
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
#: templates/js/translated/table_filters.js:450
msgid "Trackable"
msgstr ""
-#: common/models.py:733
+#: common/models.py:741
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:739 part/models.py:951
+#: common/models.py:747 part/models.py:953
#: part/templates/part/part_base.html:147
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr ""
-#: common/models.py:740
+#: common/models.py:748
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:746
+#: common/models.py:754
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:747
+#: common/models.py:755
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:753
+#: common/models.py:761
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:754
+#: common/models.py:762
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:765
+#: common/models.py:773
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:766
+#: common/models.py:774
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:772
+#: common/models.py:780
msgid "Show related parts"
msgstr ""
-#: common/models.py:773
+#: common/models.py:781
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:779
+#: common/models.py:787
msgid "Create initial stock"
msgstr ""
-#: common/models.py:780
+#: common/models.py:788
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:786
+#: common/models.py:794
msgid "Internal Prices"
msgstr ""
-#: common/models.py:787
+#: common/models.py:795
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:793
+#: common/models.py:801
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:794
+#: common/models.py:802
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:800
+#: common/models.py:808
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:801
+#: common/models.py:809
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:808
+#: common/models.py:816
msgid "Enable Reports"
msgstr ""
-#: common/models.py:809
+#: common/models.py:817
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:815 templates/stats.html:25
+#: common/models.py:823 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:816
+#: common/models.py:824
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:822
+#: common/models.py:830
msgid "Page Size"
msgstr ""
-#: common/models.py:823
+#: common/models.py:831
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:833
+#: common/models.py:841
msgid "Test Reports"
msgstr ""
-#: common/models.py:834
+#: common/models.py:842
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:840
+#: common/models.py:848
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:841
+#: common/models.py:849
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:847
+#: common/models.py:855
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:848
+#: common/models.py:856
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:854
+#: common/models.py:862
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:855
+#: common/models.py:863
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:857
+#: common/models.py:865
msgid "days"
msgstr ""
-#: common/models.py:862
+#: common/models.py:870
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:863
+#: common/models.py:871
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:869
+#: common/models.py:877
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:870
+#: common/models.py:878
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:876
-msgid "Group by Part"
-msgstr ""
-
-#: common/models.py:877
-msgid "Group stock items by part reference in table views"
-msgstr ""
-
-#: common/models.py:883
+#: common/models.py:884
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:884
+#: common/models.py:885
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:889
+#: common/models.py:890
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:890
+#: common/models.py:891
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:894
+#: common/models.py:895
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:895
+#: common/models.py:896
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:900
+#: common/models.py:901
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:901
+#: common/models.py:902
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:907
+#: common/models.py:908
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:908
+#: common/models.py:909
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:913
+#: common/models.py:914
msgid "Enable registration"
msgstr ""
-#: common/models.py:914
+#: common/models.py:915
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:919
+#: common/models.py:920
msgid "Enable SSO"
msgstr ""
-#: common/models.py:920
+#: common/models.py:921
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:925
+#: common/models.py:926
msgid "Email required"
msgstr ""
-#: common/models.py:926
+#: common/models.py:927
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:931
+#: common/models.py:932
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:932
+#: common/models.py:933
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:937
+#: common/models.py:938
msgid "Mail twice"
msgstr ""
-#: common/models.py:938
+#: common/models.py:939
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:943
+#: common/models.py:944
msgid "Password twice"
msgstr ""
-#: common/models.py:944
+#: common/models.py:945
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:949
+#: common/models.py:950
msgid "Group on signup"
msgstr ""
-#: common/models.py:950
+#: common/models.py:951
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:955
+#: common/models.py:956
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:956
+#: common/models.py:957
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:961
+#: common/models.py:964
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:962
+#: common/models.py:965
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:968
+#: common/models.py:971
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:969
+#: common/models.py:972
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:975
+#: common/models.py:978
msgid "Enable app integration"
msgstr ""
-#: common/models.py:976
+#: common/models.py:979
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:982
+#: common/models.py:985
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:983
+#: common/models.py:986
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1029
+#: common/models.py:992
+msgid "Enable event integration"
+msgstr ""
+
+#: common/models.py:993
+msgid "Enable plugins to respond to internal events"
+msgstr ""
+
+#: common/models.py:1008 common/models.py:1216
+msgid "Settings key (must be unique - case insensitive"
+msgstr ""
+
+#: common/models.py:1039
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1030
+#: common/models.py:1040
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1035
+#: common/models.py:1045
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1036
+#: common/models.py:1046
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1041
+#: common/models.py:1051
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1042
+#: common/models.py:1052
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1047
+#: common/models.py:1057
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1048
+#: common/models.py:1058
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1054
+#: common/models.py:1064
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1055
+#: common/models.py:1065
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1070
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1061
+#: common/models.py:1071
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1066
+#: common/models.py:1076
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1067
+#: common/models.py:1077
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1072
+#: common/models.py:1082
msgid "Show low stock"
msgstr ""
-#: common/models.py:1073
+#: common/models.py:1083
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1078
+#: common/models.py:1088
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1079
+#: common/models.py:1089
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1084
+#: common/models.py:1094
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1085
+#: common/models.py:1095
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1090
+#: common/models.py:1100
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1091
+#: common/models.py:1101
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1096
+#: common/models.py:1106
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1097
+#: common/models.py:1107
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1102
+#: common/models.py:1112
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1103
+#: common/models.py:1113
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1108
+#: common/models.py:1118
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1109
+#: common/models.py:1119
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1114
+#: common/models.py:1124
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1115
+#: common/models.py:1125
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1120
+#: common/models.py:1130
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1121
+#: common/models.py:1131
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1136
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1127
+#: common/models.py:1137
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1142
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1143
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1149
msgid "Inline label display"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1150
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1156
msgid "Inline report display"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1157
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1163
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1164
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1170
msgid "Search Show Stock"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1171
msgid "Display stock levels in search preview window"
msgstr ""
-#: common/models.py:1167
+#: common/models.py:1177
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1178
msgid "Hide inactive parts in search preview window"
msgstr ""
-#: common/models.py:1174
+#: common/models.py:1184
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1175
+#: common/models.py:1185
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1181
+#: common/models.py:1191
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1182
+#: common/models.py:1192
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1188
+#: common/models.py:1198
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1199
msgid "InvenTree navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1254 company/forms.py:43
+#: common/models.py:1264 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1261 company/serializers.py:264
+#: common/models.py:1271 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:909 templates/js/translated/part.js:1860
+#: templates/js/translated/part.js:915 templates/js/translated/part.js:1867
msgid "Price"
msgstr ""
-#: common/models.py:1262
+#: common/models.py:1272
msgid "Unit price at specified quantity"
msgstr ""
+#: common/models.py:1429 common/models.py:1568
+msgid "Endpoint"
+msgstr ""
+
+#: common/models.py:1430
+msgid "Endpoint at which this webhook is received"
+msgstr ""
+
+#: common/models.py:1439
+msgid "Name for this webhook"
+msgstr ""
+
+#: common/models.py:1444 part/models.py:948 plugin/models.py:46
+#: templates/js/translated/table_filters.js:34
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:295
+#: templates/js/translated/table_filters.js:417
+msgid "Active"
+msgstr ""
+
+#: common/models.py:1445
+msgid "Is this webhook active"
+msgstr ""
+
+#: common/models.py:1459
+msgid "Token"
+msgstr ""
+
+#: common/models.py:1460
+msgid "Token for access"
+msgstr ""
+
+#: common/models.py:1467
+msgid "Secret"
+msgstr ""
+
+#: common/models.py:1468
+msgid "Shared secret for HMAC"
+msgstr ""
+
+#: common/models.py:1535
+msgid "Message ID"
+msgstr ""
+
+#: common/models.py:1536
+msgid "Unique identifier for this message"
+msgstr ""
+
+#: common/models.py:1544
+msgid "Host"
+msgstr ""
+
+#: common/models.py:1545
+msgid "Host from which this message was received"
+msgstr ""
+
+#: common/models.py:1552
+msgid "Header"
+msgstr ""
+
+#: common/models.py:1553
+msgid "Header of this message"
+msgstr ""
+
+#: common/models.py:1559
+msgid "Body"
+msgstr ""
+
+#: common/models.py:1560
+msgid "Body of this message"
+msgstr ""
+
+#: common/models.py:1569
+msgid "Endpoint on which this message was received"
+msgstr ""
+
+#: common/models.py:1574
+msgid "Worked on"
+msgstr ""
+
+#: common/models.py:1575
+msgid "Was the work on this message finished?"
+msgstr ""
+
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
#: part/templates/part/bom_upload/upload_file.html:52
-#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
-#: part/views.py:764
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:213
+#: part/views.py:773
msgid "Upload File"
msgstr ""
#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
-#: part/views.py:765
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:214
+#: part/views.py:774
msgid "Match Fields"
msgstr ""
@@ -2315,7 +2404,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:838
+#: company/models.py:139 part/models.py:840
msgid "Image"
msgstr ""
@@ -2352,8 +2441,8 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:469
-#: stock/templates/stock/item_base.html:142
+#: company/models.py:320 company/models.py:535 stock/models.py:471
+#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:328
msgid "Base Part"
msgstr ""
@@ -2380,7 +2469,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:818 templates/js/translated/order.js:1038
-#: templates/js/translated/part.js:245 templates/js/translated/part.js:889
+#: templates/js/translated/part.js:245 templates/js/translated/part.js:895
msgid "MPN"
msgstr ""
@@ -2409,8 +2498,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1960 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:709 templates/js/translated/stock.js:1296
+#: stock/models.py:1988 templates/js/translated/company.js:647
+#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1304
msgid "Value"
msgstr ""
@@ -2418,10 +2507,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:913 part/models.py:2450
+#: company/models.py:429 part/models.py:915 part/models.py:2457
#: part/templates/part/part_base.html:288
-#: templates/InvenTree/settings/settings.html:284
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:715
+#: templates/InvenTree/settings/settings.html:287
+#: templates/js/translated/company.js:653 templates/js/translated/part.js:721
msgid "Units"
msgstr ""
@@ -2434,13 +2523,13 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:78
-#: company/templates/company/supplier_part.html:87 order/models.py:224
+#: company/templates/company/supplier_part.html:87 order/models.py:227
#: order/templates/order/order_base.html:112
-#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
-#: part/bom.py:247 stock/templates/stock/item_base.html:397
+#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237
+#: part/bom.py:265 stock/templates/stock/item_base.html:397
#: templates/js/translated/company.js:337
#: templates/js/translated/company.js:774 templates/js/translated/order.js:823
-#: templates/js/translated/part.js:215 templates/js/translated/part.js:857
+#: templates/js/translated/part.js:215 templates/js/translated/part.js:863
#: templates/js/translated/table_filters.js:393
msgid "Supplier"
msgstr ""
@@ -2450,8 +2539,8 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:1025
-#: templates/js/translated/part.js:226 templates/js/translated/part.js:875
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1025
+#: templates/js/translated/part.js:226 templates/js/translated/part.js:881
msgid "SKU"
msgstr ""
@@ -2472,22 +2561,22 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:119
-#: part/models.py:2641 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2648 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:580 part/models.py:1779
+#: company/models.py:580 part/models.py:1781
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1779
+#: company/models.py:580 part/models.py:1781
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:493 stock/templates/stock/item_base.html:338
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1791
+#: stock/models.py:495 stock/templates/stock/item_base.html:338
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1799
msgid "Packaging"
msgstr ""
@@ -2495,7 +2584,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1781
+#: company/models.py:584 part/models.py:1783
msgid "multiple"
msgstr ""
@@ -2554,12 +2643,12 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:83 order/models.py:547
-#: order/templates/order/sales_order_base.html:115 stock/models.py:512
-#: stock/models.py:513 stock/serializers.py:625
+#: company/templates/company/company_base.html:83 order/models.py:552
+#: order/templates/order/sales_order_base.html:115 stock/models.py:514
+#: stock/models.py:515 stock/serializers.py:626
#: stock/templates/stock/item_base.html:290
#: templates/js/translated/company.js:329 templates/js/translated/order.js:1240
-#: templates/js/translated/stock.js:2452
+#: templates/js/translated/stock.js:2610
#: templates/js/translated/table_filters.js:397
msgid "Customer"
msgstr ""
@@ -2590,7 +2679,7 @@ msgstr ""
#: company/templates/company/detail.html:20
#: company/templates/company/manufacturer_part.html:118
-#: part/templates/part/detail.html:336
+#: part/templates/part/detail.html:353
msgid "New Supplier Part"
msgstr ""
@@ -2598,8 +2687,8 @@ msgstr ""
#: company/templates/company/detail.html:79
#: company/templates/company/manufacturer_part.html:127
#: company/templates/company/manufacturer_part.html:156
-#: part/templates/part/category.html:171 part/templates/part/detail.html:345
-#: part/templates/part/detail.html:374
+#: part/templates/part/category.html:171 part/templates/part/detail.html:362
+#: part/templates/part/detail.html:391
msgid "Options"
msgstr ""
@@ -2627,7 +2716,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:364
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:381
msgid "New Manufacturer Part"
msgstr ""
@@ -2641,7 +2730,7 @@ msgstr ""
#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:68 part/templates/part/part_sidebar.html:33
+#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
@@ -2663,7 +2752,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:91 part/templates/part/part_sidebar.html:37
+#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:41
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
@@ -2691,13 +2780,13 @@ msgstr ""
#: company/templates/company/detail.html:384
#: company/templates/company/manufacturer_part.html:215
-#: part/templates/part/detail.html:418
+#: part/templates/part/detail.html:435
msgid "Delete Supplier Parts?"
msgstr ""
#: company/templates/company/detail.html:385
#: company/templates/company/manufacturer_part.html:216
-#: part/templates/part/detail.html:419
+#: part/templates/part/detail.html:436
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2714,7 +2803,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:34
#: company/templates/company/supplier_part.html:159
-#: part/templates/part/detail.html:71 part/templates/part/part_base.html:76
+#: part/templates/part/detail.html:88 part/templates/part/part_base.html:76
msgid "Order part"
msgstr ""
@@ -2735,34 +2824,34 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:114
#: company/templates/company/supplier_part.html:15 company/views.py:49
-#: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163
+#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:163
#: templates/InvenTree/search.html:188 templates/navbar.html:45
msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
-#: part/templates/part/detail.html:347
+#: part/templates/part/detail.html:364
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
#: company/templates/company/manufacturer_part.html:158
#: company/templates/company/manufacturer_part.html:254
-#: part/templates/part/detail.html:347 part/templates/part/detail.html:376
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:393
#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31
-#: users/models.py:210
+#: users/models.py:212
msgid "Delete"
msgstr ""
#: company/templates/company/manufacturer_part.html:143
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:17
-#: part/templates/part/detail.html:170 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:187 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:147
-#: part/templates/part/detail.html:175
+#: part/templates/part/detail.html:192
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
@@ -2773,7 +2862,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:191
-#: part/templates/part/detail.html:862
+#: part/templates/part/detail.html:892
msgid "Add Parameter"
msgstr ""
@@ -2802,9 +2891,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:477
+#: company/templates/company/supplier_part.html:24 stock/models.py:479
#: stock/templates/stock/item_base.html:402
-#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1748
+#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1756
msgid "Supplier Part"
msgstr ""
@@ -2830,7 +2919,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:167
-#: templates/js/translated/stock.js:360
+#: templates/js/translated/stock.js:368
msgid "New Stock Item"
msgstr ""
@@ -2840,7 +2929,7 @@ msgid "Supplier Part Orders"
msgstr ""
#: company/templates/company/supplier_part.html:160
-#: part/templates/part/detail.html:72
+#: part/templates/part/detail.html:89
msgid "Order Part"
msgstr ""
@@ -2851,7 +2940,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1619
+#: part/templates/part/prices.html:271 part/views.py:1628
msgid "Add Price Break"
msgstr ""
@@ -2859,11 +2948,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1681
+#: company/templates/company/supplier_part.html:224 part/views.py:1690
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1667
+#: company/templates/company/supplier_part.html:238 part/views.py:1676
msgid "Edit Price Break"
msgstr ""
@@ -2881,10 +2970,10 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:150
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/bom.js:328 templates/js/translated/part.js:489
-#: templates/js/translated/part.js:624 templates/js/translated/part.js:1118
-#: templates/js/translated/part.js:1279 templates/js/translated/stock.js:927
-#: templates/js/translated/stock.js:1580 templates/navbar.html:28
+#: templates/js/translated/bom.js:340 templates/js/translated/part.js:495
+#: templates/js/translated/part.js:630 templates/js/translated/part.js:1125
+#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:935
+#: templates/js/translated/stock.js:1588 templates/navbar.html:28
msgid "Stock"
msgstr ""
@@ -2907,8 +2996,8 @@ msgstr ""
#: stock/templates/stock/location.html:151
#: stock/templates/stock/location.html:163
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2351
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2509
+#: templates/stats.html:105 templates/stats.html:114 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2937,20 +3026,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:584
+#: company/views.py:129 part/views.py:593
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:616
+#: company/views.py:158 part/views.py:625
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:623
+#: company/views.py:165 part/views.py:632
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:632
+#: company/views.py:174 part/views.py:641
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3036,282 +3125,282 @@ msgstr ""
msgid "Cancel order"
msgstr ""
-#: order/models.py:122
+#: order/models.py:125
msgid "Order description"
msgstr ""
-#: order/models.py:124
+#: order/models.py:127
msgid "Link to external page"
msgstr ""
-#: order/models.py:132
+#: order/models.py:135
msgid "Created By"
msgstr ""
-#: order/models.py:139
+#: order/models.py:142
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:144
+#: order/models.py:147
msgid "Order notes"
msgstr ""
-#: order/models.py:211 order/models.py:537
+#: order/models.py:214 order/models.py:542
msgid "Order reference"
msgstr ""
-#: order/models.py:216 order/models.py:552
+#: order/models.py:219 order/models.py:557
msgid "Purchase order status"
msgstr ""
-#: order/models.py:225
+#: order/models.py:228
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:228 order/templates/order/order_base.html:118
+#: order/models.py:231 order/templates/order/order_base.html:118
#: templates/js/translated/order.js:832
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:228
+#: order/models.py:231
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:235
+#: order/models.py:238
msgid "received by"
msgstr ""
-#: order/models.py:240
+#: order/models.py:243
msgid "Issue Date"
msgstr ""
-#: order/models.py:241
+#: order/models.py:244
msgid "Date order was issued"
msgstr ""
-#: order/models.py:246
+#: order/models.py:249
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:247
+#: order/models.py:250
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:253
+#: order/models.py:256
msgid "Date order was completed"
msgstr ""
-#: order/models.py:282
+#: order/models.py:285
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:411
-msgid "Quantity must be an integer"
-msgstr ""
-
-#: order/models.py:415
+#: order/models.py:420
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:548
+#: order/models.py:553
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:554
+#: order/models.py:559
msgid "Customer Reference "
msgstr ""
-#: order/models.py:554
+#: order/models.py:559
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:559
+#: order/models.py:564
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:562 order/models.py:1028
+#: order/models.py:567 order/models.py:1048
#: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429
msgid "Shipment Date"
msgstr ""
-#: order/models.py:569
+#: order/models.py:574
msgid "shipped by"
msgstr ""
-#: order/models.py:635
+#: order/models.py:640
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:639
+#: order/models.py:644
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:642
+#: order/models.py:647
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:645
+#: order/models.py:650
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:797
+#: order/models.py:806
msgid "Item quantity"
msgstr ""
-#: order/models.py:803
+#: order/models.py:812
msgid "Line item reference"
msgstr ""
-#: order/models.py:805
+#: order/models.py:814
msgid "Line item notes"
msgstr ""
-#: order/models.py:835 order/models.py:926 order/models.py:1022
-#: templates/js/translated/order.js:1820
+#: order/models.py:842
+msgid "Supplier part must match supplier"
+msgstr ""
+
+#: order/models.py:855 order/models.py:946 order/models.py:1042
+#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2271
msgid "Order"
msgstr ""
-#: order/models.py:836 order/templates/order/order_base.html:9
+#: order/models.py:856 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:352
-#: templates/js/translated/order.js:801 templates/js/translated/part.js:832
-#: templates/js/translated/stock.js:1725 templates/js/translated/stock.js:2433
+#: templates/js/translated/order.js:801 templates/js/translated/part.js:838
+#: templates/js/translated/stock.js:1733 templates/js/translated/stock.js:2591
msgid "Purchase Order"
msgstr ""
-#: order/models.py:857
+#: order/models.py:877
msgid "Supplier part"
msgstr ""
-#: order/models.py:864 order/templates/order/order_base.html:163
+#: order/models.py:884 order/templates/order/order_base.html:163
#: templates/js/translated/order.js:589 templates/js/translated/order.js:1118
-#: templates/js/translated/part.js:904 templates/js/translated/part.js:930
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:937
#: templates/js/translated/table_filters.js:317
msgid "Received"
msgstr ""
-#: order/models.py:865
+#: order/models.py:885
msgid "Number of items received"
msgstr ""
-#: order/models.py:872 part/templates/part/prices.html:176 stock/models.py:606
+#: order/models.py:892 part/templates/part/prices.html:176 stock/models.py:608
#: stock/serializers.py:170 stock/templates/stock/item_base.html:359
-#: templates/js/translated/stock.js:1779
+#: templates/js/translated/stock.js:1787
msgid "Purchase Price"
msgstr ""
-#: order/models.py:873
+#: order/models.py:893
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:881
+#: order/models.py:901
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:936 part/templates/part/part_pricing.html:112
+#: order/models.py:956 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:937
+#: order/models.py:957
msgid "Unit sale price"
msgstr ""
-#: order/models.py:942
+#: order/models.py:962
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1029
+#: order/models.py:1049
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1036
+#: order/models.py:1056
msgid "Checked By"
msgstr ""
-#: order/models.py:1037
+#: order/models.py:1057
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1045
+#: order/models.py:1065
msgid "Shipment number"
msgstr ""
-#: order/models.py:1052
+#: order/models.py:1072
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1059
+#: order/models.py:1079
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1060
+#: order/models.py:1080
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1070
+#: order/models.py:1090
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1073
+#: order/models.py:1093
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1149 order/models.py:1151
+#: order/models.py:1171 order/models.py:1173
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1155
+#: order/models.py:1177
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1157
+#: order/models.py:1179
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1160
+#: order/models.py:1182
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1164
+#: order/models.py:1186
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:1170 order/serializers.py:734
+#: order/models.py:1192 order/serializers.py:740
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1173
+#: order/models.py:1195
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1174
+#: order/models.py:1196
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1182
+#: order/models.py:1204
msgid "Line"
msgstr ""
-#: order/models.py:1190 order/serializers.py:825 order/serializers.py:953
-#: templates/js/translated/model_renderers.js:251
+#: order/models.py:1212 order/serializers.py:831 order/serializers.py:959
+#: templates/js/translated/model_renderers.js:285
msgid "Shipment"
msgstr ""
-#: order/models.py:1191
+#: order/models.py:1213
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1203
+#: order/models.py:1225
msgid "Item"
msgstr ""
-#: order/models.py:1204
+#: order/models.py:1226
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1207
+#: order/models.py:1229
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3319,7 +3408,7 @@ msgstr ""
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:211 order/serializers.py:790
+#: order/serializers.py:211 order/serializers.py:796
msgid "Line Item"
msgstr ""
@@ -3355,39 +3444,39 @@ msgstr ""
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:581
+#: order/serializers.py:587
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:649
+#: order/serializers.py:655
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:699 order/serializers.py:802
+#: order/serializers.py:705 order/serializers.py:808
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:721
+#: order/serializers.py:727
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:815
+#: order/serializers.py:821
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:839 order/serializers.py:964
+#: order/serializers.py:845 order/serializers.py:970
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:842 order/serializers.py:967
+#: order/serializers.py:848 order/serializers.py:973
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:894
+#: order/serializers.py:900
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:904
+#: order/serializers.py:910
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3441,6 +3530,7 @@ msgstr ""
#: order/templates/order/order_base.html:94
#: order/templates/order/sales_order_base.html:89
+#: templates/js/translated/stock.js:2327
msgid "Order Status"
msgstr ""
@@ -3538,7 +3628,7 @@ msgstr ""
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/build.js:300 templates/js/translated/build.js:1311
#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488
-#: templates/js/translated/stock.js:593 templates/js/translated/stock.js:761
+#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769
msgid "Remove row"
msgstr ""
@@ -3729,7 +3819,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:48
-#: templates/js/translated/bom.js:720 templates/js/translated/build.js:1243
+#: templates/js/translated/bom.js:732 templates/js/translated/build.js:1243
msgid "Actions"
msgstr ""
@@ -3832,447 +3922,448 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:125 part/models.py:81 part/models.py:847
+#: part/bom.py:125 part/models.py:83 part/models.py:849
#: part/templates/part/category.html:108 part/templates/part/part_base.html:338
msgid "Default Location"
msgstr ""
-#: part/bom.py:126 part/templates/part/part_base.html:185
+#: part/bom.py:126 templates/email/low_stock_notification.html:17
+msgid "Total Stock"
+msgstr ""
+
+#: part/bom.py:127 part/templates/part/part_base.html:185
msgid "Available Stock"
msgstr ""
-#: part/forms.py:85
+#: part/bom.py:128 part/templates/part/part_base.html:203
+#: templates/js/translated/part.js:1301
+msgid "On Order"
+msgstr ""
+
+#: part/forms.py:84
msgid "Select part category"
msgstr ""
-#: part/forms.py:122
+#: part/forms.py:121
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:126
+#: part/forms.py:125
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:146
+#: part/forms.py:145
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:82
+#: part/models.py:84
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:85
+#: part/models.py:87
msgid "Default keywords"
msgstr ""
-#: part/models.py:85
+#: part/models.py:87
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:95 part/models.py:2526 part/templates/part/category.html:15
+#: part/models.py:97 part/models.py:2533 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:96 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/stats.html:84
+#: part/models.py:98 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/stats.html:96
#: users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:358 part/templates/part/cat_link.html:3
+#: part/models.py:360 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:17 part/templates/part/category.html:133
#: part/templates/part/category.html:153
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:37
-#: templates/js/translated/part.js:1656 templates/navbar.html:21
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+#: templates/js/translated/part.js:1663 templates/navbar.html:21
+#: templates/stats.html:92 templates/stats.html:101 users/models.py:41
msgid "Parts"
msgstr ""
-#: part/models.py:450
+#: part/models.py:452
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:500 part/models.py:512
+#: part/models.py:502 part/models.py:514
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:642
+#: part/models.py:644
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:646
+#: part/models.py:648
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:651
+#: part/models.py:653
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:746
+#: part/models.py:748
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:771
+#: part/models.py:773
msgid "Part name"
msgstr ""
-#: part/models.py:778
+#: part/models.py:780
msgid "Is Template"
msgstr ""
-#: part/models.py:779
+#: part/models.py:781
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:789
+#: part/models.py:791
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:790
+#: part/models.py:792
msgid "Variant Of"
msgstr ""
-#: part/models.py:796
+#: part/models.py:798
msgid "Part description"
msgstr ""
-#: part/models.py:801 part/templates/part/category.html:86
+#: part/models.py:803 part/templates/part/category.html:86
#: part/templates/part/part_base.html:302
msgid "Keywords"
msgstr ""
-#: part/models.py:802
+#: part/models.py:804
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:809 part/models.py:2276 part/models.py:2525
+#: part/models.py:811 part/models.py:2283 part/models.py:2532
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:183
-#: templates/js/translated/part.js:1261
+#: templates/InvenTree/settings/settings.html:186
+#: templates/js/translated/part.js:1268
msgid "Category"
msgstr ""
-#: part/models.py:810
+#: part/models.py:812
msgid "Part category"
msgstr ""
-#: part/models.py:815 part/templates/part/part_base.html:274
-#: templates/js/translated/part.js:612 templates/js/translated/part.js:1214
-#: templates/js/translated/stock.js:1552
+#: part/models.py:817 part/templates/part/part_base.html:274
+#: templates/js/translated/part.js:618 templates/js/translated/part.js:1221
+#: templates/js/translated/stock.js:1560
msgid "IPN"
msgstr ""
-#: part/models.py:816
+#: part/models.py:818
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:822
+#: part/models.py:824
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:823 part/templates/part/part_base.html:281
-#: report/models.py:200 templates/js/translated/part.js:616
+#: part/models.py:825 part/templates/part/part_base.html:281
+#: report/models.py:200 templates/js/translated/part.js:622
msgid "Revision"
msgstr ""
-#: part/models.py:845
+#: part/models.py:847
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:892 part/templates/part/part_base.html:347
+#: part/models.py:894 part/templates/part/part_base.html:347
msgid "Default Supplier"
msgstr ""
-#: part/models.py:893
+#: part/models.py:895
msgid "Default supplier part"
msgstr ""
-#: part/models.py:900
+#: part/models.py:902
msgid "Default Expiry"
msgstr ""
-#: part/models.py:901
+#: part/models.py:903
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:906 part/templates/part/part_base.html:196
+#: part/models.py:908 part/templates/part/part_base.html:196
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:907
+#: part/models.py:909
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:914
+#: part/models.py:916
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:920
+#: part/models.py:922
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:926
+#: part/models.py:928
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:932
+#: part/models.py:934
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:937
+#: part/models.py:939
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:942
+#: part/models.py:944
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:946 plugin/models.py:46
-#: templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:96
-#: templates/js/translated/table_filters.js:295
-#: templates/js/translated/table_filters.js:417
-msgid "Active"
-msgstr ""
-
-#: part/models.py:947
+#: part/models.py:949
msgid "Is this part active?"
msgstr ""
-#: part/models.py:952
+#: part/models.py:954
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:957
+#: part/models.py:959
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:960
+#: part/models.py:962
msgid "BOM checksum"
msgstr ""
-#: part/models.py:960
+#: part/models.py:962
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:963
+#: part/models.py:965
msgid "BOM checked by"
msgstr ""
-#: part/models.py:965
+#: part/models.py:967
msgid "BOM checked date"
msgstr ""
-#: part/models.py:969
+#: part/models.py:971
msgid "Creation User"
msgstr ""
-#: part/models.py:1781
+#: part/models.py:1783
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2326
+#: part/models.py:2333
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2343
+#: part/models.py:2350
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2363 templates/js/translated/part.js:1707
-#: templates/js/translated/stock.js:1276
+#: part/models.py:2370 templates/js/translated/part.js:1714
+#: templates/js/translated/stock.js:1284
msgid "Test Name"
msgstr ""
-#: part/models.py:2364
+#: part/models.py:2371
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2376
msgid "Test Description"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2377
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2375 templates/js/translated/part.js:1716
+#: part/models.py:2382 templates/js/translated/part.js:1723
#: templates/js/translated/table_filters.js:281
msgid "Required"
msgstr ""
-#: part/models.py:2376
+#: part/models.py:2383
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2381 templates/js/translated/part.js:1724
+#: part/models.py:2388 templates/js/translated/part.js:1731
msgid "Requires Value"
msgstr ""
-#: part/models.py:2382
+#: part/models.py:2389
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2387 templates/js/translated/part.js:1731
+#: part/models.py:2394 templates/js/translated/part.js:1738
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2388
+#: part/models.py:2395
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2399
+#: part/models.py:2406
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2435
+#: part/models.py:2442
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2443
+#: part/models.py:2450
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2450
+#: part/models.py:2457
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2480
+#: part/models.py:2487
msgid "Parent Part"
msgstr ""
-#: part/models.py:2482 part/models.py:2531 part/models.py:2532
-#: templates/InvenTree/settings/settings.html:178
+#: part/models.py:2489 part/models.py:2538 part/models.py:2539
+#: templates/InvenTree/settings/settings.html:181
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2484
+#: part/models.py:2491
msgid "Data"
msgstr ""
-#: part/models.py:2484
+#: part/models.py:2491
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2536 templates/InvenTree/settings/settings.html:187
+#: part/models.py:2543 templates/InvenTree/settings/settings.html:190
msgid "Default Value"
msgstr ""
-#: part/models.py:2537
+#: part/models.py:2544
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2614
+#: part/models.py:2621
msgid "Select parent part"
msgstr ""
-#: part/models.py:2622
+#: part/models.py:2629
msgid "Sub part"
msgstr ""
-#: part/models.py:2623
+#: part/models.py:2630
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2629
+#: part/models.py:2636
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2631 templates/js/translated/bom.js:566
-#: templates/js/translated/bom.js:640
+#: part/models.py:2638 templates/js/translated/bom.js:578
+#: templates/js/translated/bom.js:652
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2638
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2634
+#: part/models.py:2641
msgid "Overage"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2642
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2638
+#: part/models.py:2645
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2641
+#: part/models.py:2648
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2643
+#: part/models.py:2650
msgid "Checksum"
msgstr ""
-#: part/models.py:2643
+#: part/models.py:2650
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2647 templates/js/translated/bom.js:657
+#: part/models.py:2654 templates/js/translated/bom.js:669
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2648
+#: part/models.py:2655
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2653 templates/js/translated/bom.js:649
+#: part/models.py:2660 templates/js/translated/bom.js:661
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2654
+#: part/models.py:2661
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2739 stock/models.py:355
+#: part/models.py:2746 stock/models.py:357
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2748 part/models.py:2750
+#: part/models.py:2755 part/models.py:2757
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2879
+#: part/models.py:2886
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2908
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2920
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2928
msgid "Substitute part"
msgstr ""
-#: part/models.py:2932
+#: part/models.py:2939
msgid "Part 1"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2943
msgid "Part 2"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2943
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2968
+#: part/models.py:2975
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4327,7 +4418,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:253
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:270
msgid "BOM actions"
msgstr ""
@@ -4499,7 +4590,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:348
msgid "Duplicate Part"
msgstr ""
@@ -4533,145 +4624,149 @@ msgid "Showing stock for all variants of %(full_name)s"
msgstr ""
#: part/templates/part/detail.html:43
+msgid "Part Stock Allocations"
+msgstr ""
+
+#: part/templates/part/detail.html:60
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:48
+#: part/templates/part/detail.html:65
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:105
+#: part/templates/part/detail.html:122
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:142
+#: part/templates/part/detail.html:159
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:146
+#: part/templates/part/detail.html:163
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:147
+#: part/templates/part/detail.html:164
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:174
+#: part/templates/part/detail.html:191
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:45
+#: part/templates/part/detail.html:228 part/templates/part/part_sidebar.html:49
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:215 part/templates/part/detail.html:216
+#: part/templates/part/detail.html:232 part/templates/part/detail.html:233
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:236 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:253 part/templates/part/part_sidebar.html:17
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:241
+#: part/templates/part/detail.html:258
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:245 templates/js/translated/bom.js:70
+#: part/templates/part/detail.html:262 templates/js/translated/bom.js:70
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:247
+#: part/templates/part/detail.html:264
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:257
+#: part/templates/part/detail.html:274
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:259 templates/js/translated/part.js:272
+#: part/templates/part/detail.html:276 templates/js/translated/part.js:272
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:278
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:266
+#: part/templates/part/detail.html:283
msgid "New BOM Item"
msgstr ""
-#: part/templates/part/detail.html:267
+#: part/templates/part/detail.html:284
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:280
+#: part/templates/part/detail.html:297
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:297
+#: part/templates/part/detail.html:314
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:322
+#: part/templates/part/detail.html:339
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:332
+#: part/templates/part/detail.html:349
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:360
+#: part/templates/part/detail.html:377
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:393
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:558
+#: part/templates/part/detail.html:575
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:559
+#: part/templates/part/detail.html:576
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:608
+#: part/templates/part/detail.html:625
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:652
+#: part/templates/part/detail.html:682
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:660
+#: part/templates/part/detail.html:690
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:755
+#: part/templates/part/detail.html:785
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:812
+#: part/templates/part/detail.html:842
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:925
+#: part/templates/part/detail.html:955
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:937
+#: part/templates/part/detail.html:967
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:949
+#: part/templates/part/detail.html:979
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1038
+#: part/templates/part/detail.html:1068
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4786,7 +4881,7 @@ msgstr ""
#: templates/js/translated/company.js:508
#: templates/js/translated/company.js:765
#: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:527 templates/js/translated/part.js:604
+#: templates/js/translated/part.js:533 templates/js/translated/part.js:610
msgid "Inactive"
msgstr ""
@@ -4805,10 +4900,6 @@ msgstr ""
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1294
-msgid "On Order"
-msgstr ""
-
#: part/templates/part/part_base.html:210 templates/InvenTree/index.html:178
msgid "Required for Build Orders"
msgstr ""
@@ -4821,12 +4912,12 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:678
+#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:690
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1125
-#: templates/js/translated/part.js:1298
+#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1132
+#: templates/js/translated/part.js:1305
msgid "Building"
msgstr ""
@@ -4878,7 +4969,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:632
+#: templates/js/translated/bom.js:644
msgid "No supplier pricing available"
msgstr ""
@@ -4920,7 +5011,12 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/templates/part/part_sidebar.html:41
+#: part/templates/part/part_sidebar.html:31
+#: stock/templates/stock/stock_sidebar.html:8
+msgid "Allocations"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:45
msgid "Test Templates"
msgstr ""
@@ -4993,7 +5089,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:626
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:638
msgid "Supplier Cost"
msgstr ""
@@ -5015,7 +5111,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1690
+#: part/templates/part/prices.html:215 part/views.py:1699
msgid "Add Internal Price Break"
msgstr ""
@@ -5035,9 +5131,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:588
-#: templates/js/translated/part.js:491 templates/js/translated/part.js:1115
-#: templates/js/translated/part.js:1302
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:600
+#: templates/js/translated/part.js:497 templates/js/translated/part.js:1122
+#: templates/js/translated/part.js:1309
msgid "No Stock"
msgstr ""
@@ -5054,116 +5150,116 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:116
+#: part/templatetags/inventree_extras.py:125
msgid "Unknown database"
msgstr ""
-#: part/views.py:92
+#: part/views.py:93
msgid "Set Part Category"
msgstr ""
-#: part/views.py:142
+#: part/views.py:143
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:214
+#: part/views.py:215
msgid "Match References"
msgstr ""
-#: part/views.py:502
+#: part/views.py:511
msgid "None"
msgstr ""
-#: part/views.py:561
+#: part/views.py:570
msgid "Part QR Code"
msgstr ""
-#: part/views.py:663
+#: part/views.py:672
msgid "Select Part Image"
msgstr ""
-#: part/views.py:689
+#: part/views.py:698
msgid "Updated part image"
msgstr ""
-#: part/views.py:692
+#: part/views.py:701
msgid "Part image not found"
msgstr ""
-#: part/views.py:766
+#: part/views.py:775
msgid "Match Parts"
msgstr ""
-#: part/views.py:1101
+#: part/views.py:1110
msgid "Export Bill of Materials"
msgstr ""
-#: part/views.py:1150
+#: part/views.py:1159
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1157
+#: part/views.py:1166
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1166
+#: part/views.py:1175
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1315
+#: part/views.py:1324
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1325
+#: part/views.py:1334
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1332
+#: part/views.py:1341
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1391 templates/js/translated/part.js:315
+#: part/views.py:1400 templates/js/translated/part.js:315
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1429
+#: part/views.py:1438
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1435
+#: part/views.py:1444
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1444
+#: part/views.py:1453
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1545
+#: part/views.py:1554
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1601
+#: part/views.py:1610
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1623
+#: part/views.py:1632
msgid "Added new price break"
msgstr ""
-#: part/views.py:1699
+#: part/views.py:1708
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1707
+#: part/views.py:1716
msgid "Delete Internal Price Break"
msgstr ""
-#: plugin/integration.py:124
+#: plugin/integration.py:138
msgid "No author found"
msgstr ""
-#: plugin/integration.py:136
+#: plugin/integration.py:152
msgid "No date found"
msgstr ""
@@ -5191,7 +5287,7 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:195
+#: plugin/models.py:199
msgid "Plugin"
msgstr ""
@@ -5357,12 +5453,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:517 stock/templates/stock/item_base.html:156
+#: stock/models.py:519 stock/templates/stock/item_base.html:156
#: templates/js/translated/build.js:293 templates/js/translated/build.js:697
#: templates/js/translated/build.js:1073
#: templates/js/translated/model_renderers.js:95
#: templates/js/translated/order.js:99 templates/js/translated/order.js:1945
-#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:415
+#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:423
msgid "Serial Number"
msgstr ""
@@ -5371,19 +5467,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:1948
+#: stock/models.py:1976
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:1954
+#: stock/models.py:1982
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:49
+#: templates/InvenTree/settings/plugin.html:50
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2367
+#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2525
msgid "Date"
msgstr ""
@@ -5396,23 +5492,27 @@ msgid "Fail"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:123
-#: stock/templates/stock/stock_sidebar.html:12
+#: stock/templates/stock/stock_sidebar.html:16
msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:578 templates/js/translated/stock.js:748
-#: templates/js/translated/stock.js:2627
+#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756
+#: templates/js/translated/stock.js:2785
msgid "Serial"
msgstr ""
-#: stock/api.py:478
+#: stock/api.py:476
msgid "Quantity is required"
msgstr ""
-#: stock/forms.py:77 stock/forms.py:251 stock/models.py:574
+#: stock/api.py:483
+msgid "Valid part must be supplied"
+msgstr ""
+
+#: stock/forms.py:77 stock/forms.py:251 stock/models.py:576
#: stock/templates/stock/item_base.html:193
-#: templates/js/translated/stock.js:1701
+#: templates/js/translated/stock.js:1709
msgid "Expiry Date"
msgstr ""
@@ -5460,228 +5560,228 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:60 stock/models.py:611
+#: stock/models.py:62 stock/models.py:613
#: stock/templates/stock/item_base.html:416
msgid "Owner"
msgstr ""
-#: stock/models.py:61 stock/models.py:612
+#: stock/models.py:63 stock/models.py:614
msgid "Select Owner"
msgstr ""
-#: stock/models.py:336
+#: stock/models.py:338
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:372
+#: stock/models.py:374
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:382 stock/models.py:391
+#: stock/models.py:384 stock/models.py:393
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:383
+#: stock/models.py:385
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:405
+#: stock/models.py:407
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:413
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:418
+#: stock/models.py:420
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:461
+#: stock/models.py:463
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:470
+#: stock/models.py:472
msgid "Base part"
msgstr ""
-#: stock/models.py:478
+#: stock/models.py:480
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:484 stock/templates/stock/location.html:16
+#: stock/models.py:486 stock/templates/stock/location.html:16
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:487
+#: stock/models.py:489
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:494
+#: stock/models.py:496
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:500 stock/templates/stock/item_base.html:298
+#: stock/models.py:502 stock/templates/stock/item_base.html:298
msgid "Installed In"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:505
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:521
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:535
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:537
+#: stock/models.py:539
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:546
+#: stock/models.py:548
msgid "Source Build"
msgstr ""
-#: stock/models.py:548
+#: stock/models.py:550
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:559
+#: stock/models.py:561
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:562
+#: stock/models.py:564
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:568
+#: stock/models.py:570
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:575
+#: stock/models.py:577
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:588
+#: stock/models.py:590
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:588
+#: stock/models.py:590
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:598 stock/templates/stock/item.html:111
+#: stock/models.py:600 stock/templates/stock/item.html:128
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:607
+#: stock/models.py:609
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1068
+#: stock/models.py:1096
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1074
+#: stock/models.py:1102
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1080
+#: stock/models.py:1108
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1083
+#: stock/models.py:1111
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1086
+#: stock/models.py:1114
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1093
+#: stock/models.py:1121
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1164
+#: stock/models.py:1192
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1167
+#: stock/models.py:1195
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1170
+#: stock/models.py:1198
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1173
+#: stock/models.py:1201
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1176
+#: stock/models.py:1204
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1179
+#: stock/models.py:1207
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1186 stock/serializers.py:774
+#: stock/models.py:1214 stock/serializers.py:775
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1190
+#: stock/models.py:1218
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1194
+#: stock/models.py:1222
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1198
+#: stock/models.py:1226
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1369
+#: stock/models.py:1397
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1868
+#: stock/models.py:1896
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1925
+#: stock/models.py:1953
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1931
+#: stock/models.py:1959
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1949
+#: stock/models.py:1977
msgid "Test name"
msgstr ""
-#: stock/models.py:1955 templates/js/translated/table_filters.js:271
+#: stock/models.py:1983 templates/js/translated/table_filters.js:271
msgid "Test result"
msgstr ""
-#: stock/models.py:1961
+#: stock/models.py:1989
msgid "Test output value"
msgstr ""
-#: stock/models.py:1968
+#: stock/models.py:1996
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1974
+#: stock/models.py:2002
msgid "Test notes"
msgstr ""
@@ -5706,7 +5806,7 @@ msgstr ""
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:326 stock/serializers.py:731 stock/serializers.py:972
+#: stock/serializers.py:326 stock/serializers.py:732 stock/serializers.py:973
msgid "Destination stock location"
msgstr ""
@@ -5718,63 +5818,63 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:588
+#: stock/serializers.py:589
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:592
+#: stock/serializers.py:593
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:597
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:626
+#: stock/serializers.py:627
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:632
+#: stock/serializers.py:633
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:640
+#: stock/serializers.py:641
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:650 stock/serializers.py:880
+#: stock/serializers.py:651 stock/serializers.py:881
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:738
+#: stock/serializers.py:739
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:743
+#: stock/serializers.py:744
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:744
+#: stock/serializers.py:745
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:749
+#: stock/serializers.py:750
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:750
+#: stock/serializers.py:751
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:760
+#: stock/serializers.py:761
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:842
+#: stock/serializers.py:843
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:870
+#: stock/serializers.py:871
msgid "Stock transaction notes"
msgstr ""
@@ -5787,47 +5887,51 @@ msgid "New Entry"
msgstr ""
#: stock/templates/stock/item.html:48
-msgid "Child Stock Items"
-msgstr ""
-
-#: stock/templates/stock/item.html:55
-msgid "This stock item does not have any child items"
+msgid "Stock Item Allocations"
msgstr ""
#: stock/templates/stock/item.html:64
-#: stock/templates/stock/stock_sidebar.html:8
-msgid "Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:57
-msgid "Test Report"
+msgid "Child Stock Items"
msgstr ""
#: stock/templates/stock/item.html:72
+msgid "This stock item does not have any child items"
+msgstr ""
+
+#: stock/templates/stock/item.html:81
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:57
+msgid "Test Report"
+msgstr ""
+
+#: stock/templates/stock/item.html:89
msgid "Delete Test Data"
msgstr ""
-#: stock/templates/stock/item.html:76
+#: stock/templates/stock/item.html:93
msgid "Add Test Data"
msgstr ""
-#: stock/templates/stock/item.html:133
+#: stock/templates/stock/item.html:150
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:137 stock/views.py:482
+#: stock/templates/stock/item.html:154 stock/views.py:482
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304
+#: stock/templates/stock/item.html:309 stock/templates/stock/item.html:334
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:324
+#: stock/templates/stock/item.html:354
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:338
+#: stock/templates/stock/item.html:368
msgid "Delete Test Result"
msgstr ""
@@ -5952,7 +6056,7 @@ msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:206
-#: templates/js/translated/stock.js:1714
+#: templates/js/translated/stock.js:1722
msgid "Last Updated"
msgstr ""
@@ -6111,7 +6215,7 @@ msgid "Sublocations"
msgstr ""
#: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164
-#: templates/stats.html:97 users/models.py:42
+#: templates/stats.html:109 users/models.py:42
msgid "Stock Locations"
msgstr ""
@@ -6135,7 +6239,7 @@ msgstr ""
msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/stock_sidebar.html:16
+#: stock/templates/stock/stock_sidebar.html:20
msgid "Child Items"
msgstr ""
@@ -6164,7 +6268,7 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:162
+#: stock/views.py:162 templates/js/translated/stock.js:139
msgid "Edit Stock Location"
msgstr ""
@@ -6204,7 +6308,7 @@ msgstr ""
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:727 templates/js/translated/stock.js:1066
+#: stock/views.py:727 templates/js/translated/stock.js:1074
msgid "Confirm stock adjustment"
msgstr ""
@@ -6212,7 +6316,7 @@ msgstr ""
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:324
+#: stock/views.py:760 templates/js/translated/stock.js:332
msgid "Edit Stock Item"
msgstr ""
@@ -6224,7 +6328,7 @@ msgstr ""
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1153 templates/js/translated/stock.js:304
+#: stock/views.py:1153 templates/js/translated/stock.js:312
msgid "Duplicate Stock Item"
msgstr ""
@@ -6268,6 +6372,18 @@ msgstr ""
msgid "The requested page does not exist"
msgstr ""
+#: templates/500.html:5 templates/500.html:11
+msgid "Internal Server Error"
+msgstr ""
+
+#: templates/500.html:14
+msgid "The InvenTree server raised an internal error"
+msgstr ""
+
+#: templates/500.html:15
+msgid "Refer to the error log in the admin interface for further details"
+msgstr ""
+
#: templates/503.html:10 templates/503.html:35
msgid "Site is in Maintenance"
msgstr ""
@@ -6390,7 +6506,7 @@ msgid "Signup"
msgstr ""
#: templates/InvenTree/settings/mixins/settings.html:5
-#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:118
+#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113
msgid "Settings"
msgstr ""
@@ -6431,43 +6547,43 @@ msgstr ""
msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage."
msgstr ""
-#: templates/InvenTree/settings/plugin.html:32
+#: templates/InvenTree/settings/plugin.html:33
msgid "Plugins"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:37
+#: templates/InvenTree/settings/plugin.html:38
#: templates/js/translated/plugin.js:15
msgid "Install Plugin"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:46 templates/navbar.html:111
+#: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111
#: users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin.html:49
#: templates/InvenTree/settings/plugin_settings.html:28
msgid "Author"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:50
+#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin_settings.html:43
msgid "Version"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:91
+#: templates/InvenTree/settings/plugin.html:92
msgid "Inactive plugins"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:114
+#: templates/InvenTree/settings/plugin.html:115
msgid "Plugin Error Stack"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:123
+#: templates/InvenTree/settings/plugin.html:124
msgid "Stage"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:125
+#: templates/InvenTree/settings/plugin.html:126
msgid "Message"
msgstr ""
@@ -6555,37 +6671,37 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:75
+#: templates/InvenTree/settings/settings.html:78
msgid "Edit Plugin Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:77
+#: templates/InvenTree/settings/settings.html:80
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:79
+#: templates/InvenTree/settings/settings.html:82
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:168
+#: templates/InvenTree/settings/settings.html:171
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:190
-#: templates/InvenTree/settings/settings.html:289
+#: templates/InvenTree/settings/settings.html:193
+#: templates/InvenTree/settings/settings.html:292
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:191
-#: templates/InvenTree/settings/settings.html:290
+#: templates/InvenTree/settings/settings.html:194
+#: templates/InvenTree/settings/settings.html:293
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:269
+#: templates/InvenTree/settings/settings.html:272
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:273
+#: templates/InvenTree/settings/settings.html:276
msgid "ID"
msgstr ""
@@ -6763,124 +6879,105 @@ msgstr ""
msgid "Remove multifactor"
msgstr ""
-#: templates/InvenTree/settings/user.html:219
+#: templates/InvenTree/settings/user.html:220
+msgid "Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:226
+msgid "Log out active sessions (except this one)"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:227
+msgid "Log Out Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:236
+msgid "unknown on unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:237
+msgid "unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:241
+msgid "IP Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:242
+msgid "Device"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:243
+msgid "Last Activity"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:252
+#, python-format
+msgid "%(time)s ago (this session)"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:254
+#, python-format
+msgid "%(time)s ago"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:266
+msgid "Do you really want to remove the selected email address?"
+msgstr ""
+
#: templates/InvenTree/settings/user_display.html:25
msgid "Theme Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:227
#: templates/InvenTree/settings/user_display.html:35
msgid "Select theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:237
#: templates/InvenTree/settings/user_display.html:46
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:246
#: templates/InvenTree/settings/user_display.html:54
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:254
#: templates/InvenTree/settings/user_display.html:63
msgid "Select language"
msgstr ""
-#: templates/InvenTree/settings/user.html:270
#: templates/InvenTree/settings/user_display.html:79
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:272
#: templates/InvenTree/settings/user_display.html:81
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:279
#: templates/InvenTree/settings/user_display.html:88
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:281
#: templates/InvenTree/settings/user_display.html:91
msgid "Some languages are not complete"
msgstr ""
-#: templates/InvenTree/settings/user.html:283
#: templates/InvenTree/settings/user_display.html:93
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user.html:285
+#: templates/InvenTree/settings/user_display.html:95
+msgid "and hidden."
+msgstr ""
+
#: templates/InvenTree/settings/user_display.html:95
msgid "Show them too"
msgstr ""
-#: templates/InvenTree/settings/user.html:292
#: templates/InvenTree/settings/user_display.html:101
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user.html:293
-#, python-format
-msgid "Native language translation of the\n"
-" InvenTree web application is community contributed via crowdin. Contributions are\n"
-" welcomed and encouraged."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:302
-msgid "Active Sessions"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:308
-msgid "Log out active sessions (except this one)"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:309
-msgid "Log Out Active Sessions"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:318
-msgid "unknown on unknown"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:319
-msgid "unknown"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:323
-msgid "IP Address"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:324
-msgid "Device"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:325
-msgid "Last Activity"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:334
-#, python-format
-msgid "%(time)s ago (this session)"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:336
-#, python-format
-msgid "%(time)s ago"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:348
-msgid "Do you really want to remove the selected email address?"
-msgstr ""
-
-#: templates/InvenTree/settings/user_display.html:95
-msgid "and hidden."
-msgstr ""
-
#: templates/InvenTree/settings/user_display.html:102
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
@@ -6899,9 +6996,9 @@ msgid "InvenTree Version Information"
msgstr ""
#: templates/about.html:11 templates/about.html:105
-#: templates/js/translated/bom.js:395 templates/js/translated/modals.js:53
-#: templates/js/translated/modals.js:573 templates/js/translated/modals.js:667
-#: templates/js/translated/modals.js:970 templates/modals.html:15
+#: templates/js/translated/bom.js:407 templates/js/translated/modals.js:53
+#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
+#: templates/js/translated/modals.js:983 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -7178,13 +7275,13 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1103
+#: templates/js/translated/bom.js:1117
msgid "Required Quantity"
msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:579 templates/js/translated/build.js:1189
+#: templates/js/translated/bom.js:591 templates/js/translated/build.js:1189
#: templates/js/translated/build.js:1810
#: templates/js/translated/table_filters.js:178
msgid "Available"
@@ -7208,10 +7305,6 @@ msgstr ""
msgid "Click on the following link to view this part"
msgstr ""
-#: templates/email/low_stock_notification.html:17
-msgid "Total Stock"
-msgstr ""
-
#: templates/email/low_stock_notification.html:19
msgid "Minimum Quantity"
msgstr ""
@@ -7232,11 +7325,11 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1040
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1053
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1041
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1054
msgid "No response from the InvenTree server"
msgstr ""
@@ -7248,27 +7341,27 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1063
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1051
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1064
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1068
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1056
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1069
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1073
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1061
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1074
msgid "The requested resource could not be located on the server"
msgstr ""
@@ -7280,11 +7373,11 @@ msgstr ""
msgid "HTTP method not allowed at URL"
msgstr ""
-#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1065
+#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1078
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1079
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -7353,7 +7446,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:140
-#: templates/js/translated/modals.js:1030
+#: templates/js/translated/modals.js:1043
msgid "Invalid server response"
msgstr ""
@@ -7381,7 +7474,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1018
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026
msgid "Remove stock item"
msgstr ""
@@ -7428,12 +7521,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73
-#: templates/js/translated/order.js:369 templates/js/translated/stock.js:510
+#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74
-#: templates/js/translated/order.js:370 templates/js/translated/stock.js:511
+#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519
msgid "Select file format"
msgstr ""
@@ -7489,87 +7582,87 @@ msgstr ""
msgid "Remove substitute part"
msgstr ""
-#: templates/js/translated/bom.js:340
-msgid "Select and add a new variant item using the input below"
+#: templates/js/translated/bom.js:352
+msgid "Select and add a new substitute part using the input below"
msgstr ""
-#: templates/js/translated/bom.js:351
+#: templates/js/translated/bom.js:363
msgid "Are you sure you wish to remove this substitute part link?"
msgstr ""
-#: templates/js/translated/bom.js:357
+#: templates/js/translated/bom.js:369
msgid "Remove Substitute Part"
msgstr ""
-#: templates/js/translated/bom.js:396
+#: templates/js/translated/bom.js:408
msgid "Add Substitute"
msgstr ""
-#: templates/js/translated/bom.js:397
+#: templates/js/translated/bom.js:409
msgid "Edit BOM Item Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:516
+#: templates/js/translated/bom.js:528
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:520 templates/js/translated/build.js:1171
+#: templates/js/translated/bom.js:532 templates/js/translated/build.js:1171
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:525
+#: templates/js/translated/bom.js:537
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:597
+#: templates/js/translated/bom.js:609
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:612
+#: templates/js/translated/bom.js:624
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:619
+#: templates/js/translated/bom.js:631
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:668 templates/js/translated/bom.js:757
+#: templates/js/translated/bom.js:680 templates/js/translated/bom.js:769
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:728
+#: templates/js/translated/bom.js:740
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:730
+#: templates/js/translated/bom.js:742
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:732
+#: templates/js/translated/bom.js:744
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:734 templates/js/translated/bom.js:908
+#: templates/js/translated/bom.js:746 templates/js/translated/bom.js:920
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:736 templates/js/translated/bom.js:891
+#: templates/js/translated/bom.js:748 templates/js/translated/bom.js:903
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:830 templates/js/translated/build.js:915
+#: templates/js/translated/bom.js:842 templates/js/translated/build.js:915
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:886
+#: templates/js/translated/bom.js:898
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:1086 templates/js/translated/build.js:1155
+#: templates/js/translated/bom.js:1100 templates/js/translated/build.js:1155
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1108
+#: templates/js/translated/bom.js:1122
msgid "Inherited from parent BOM"
msgstr ""
@@ -7725,9 +7818,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1206
-#: templates/js/translated/part.js:1617 templates/js/translated/stock.js:1512
-#: templates/js/translated/stock.js:2321
+#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1213
+#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1520
+#: templates/js/translated/stock.js:2479
msgid "Select"
msgstr ""
@@ -7735,7 +7828,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2540
+#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2698
msgid "No user information"
msgstr ""
@@ -7808,34 +7901,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:511
-#: templates/js/translated/part.js:596
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:517
+#: templates/js/translated/part.js:602
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:515
-#: templates/js/translated/part.js:600
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:521
+#: templates/js/translated/part.js:606
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:690
+#: templates/js/translated/company.js:631 templates/js/translated/part.js:696
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:732
+#: templates/js/translated/company.js:668 templates/js/translated/part.js:738
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:733
+#: templates/js/translated/company.js:669 templates/js/translated/part.js:739
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:750
+#: templates/js/translated/company.js:688 templates/js/translated/part.js:756
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:762
+#: templates/js/translated/company.js:699 templates/js/translated/part.js:768
msgid "Delete Parameter"
msgstr ""
@@ -7844,12 +7937,12 @@ msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:420
+#: templates/js/translated/filters.js:429
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:421
+#: templates/js/translated/filters.js:430
msgid "false"
msgstr ""
@@ -7869,7 +7962,7 @@ msgstr ""
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:329
+#: templates/js/translated/filters.js:338
msgid "Create filter"
msgstr ""
@@ -7898,20 +7991,20 @@ msgstr ""
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1080 templates/modals.html:19
+#: templates/js/translated/forms.js:1082 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1471
+#: templates/js/translated/forms.js:1487
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1675
+#: templates/js/translated/forms.js:1691
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1895
+#: templates/js/translated/forms.js:1930
msgid "Clear input"
msgstr ""
@@ -7924,7 +8017,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1042
+#: templates/js/translated/stock.js:1050
msgid "Select Stock Items"
msgstr ""
@@ -7974,12 +8067,12 @@ msgid "Select Label Template"
msgstr ""
#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
-#: templates/js/translated/modals.js:599
+#: templates/js/translated/modals.js:610
msgid "Cancel"
msgstr ""
#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:666 templates/js/translated/modals.js:969
+#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:982
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
@@ -7988,47 +8081,47 @@ msgstr ""
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:381
+#: templates/js/translated/modals.js:392
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:540
+#: templates/js/translated/modals.js:551
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:598
+#: templates/js/translated/modals.js:609
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:655
+#: templates/js/translated/modals.js:666
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:921
+#: templates/js/translated/modals.js:934
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:921
+#: templates/js/translated/modals.js:934
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:946
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1030
+#: templates/js/translated/modals.js:1043
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1045
+#: templates/js/translated/modals.js:1058
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1046
+#: templates/js/translated/modals.js:1059
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1069
+#: templates/js/translated/modals.js:1082
msgid "Error requesting form data"
msgstr ""
@@ -8052,23 +8145,24 @@ msgstr ""
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:236
+#: templates/js/translated/model_renderers.js:249
+#: templates/js/translated/model_renderers.js:270
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:253
+#: templates/js/translated/model_renderers.js:287
msgid "Shipment ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:273
+#: templates/js/translated/model_renderers.js:307
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:310
+#: templates/js/translated/model_renderers.js:344
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:339
+#: templates/js/translated/model_renderers.js:373
msgid "Supplier Part ID"
msgstr ""
@@ -8116,7 +8210,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2123
+#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2131
msgid "Stock Status"
msgstr ""
@@ -8140,7 +8234,7 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:790 templates/js/translated/part.js:803
+#: templates/js/translated/order.js:790 templates/js/translated/part.js:809
msgid "No purchase orders found"
msgstr ""
@@ -8165,7 +8259,7 @@ msgid "Total"
msgstr ""
#: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163
-#: templates/js/translated/part.js:1834 templates/js/translated/part.js:2045
+#: templates/js/translated/part.js:1841 templates/js/translated/part.js:2052
msgid "Unit Price"
msgstr ""
@@ -8181,7 +8275,7 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1166 templates/js/translated/part.js:935
+#: templates/js/translated/order.js:1166 templates/js/translated/part.js:942
msgid "Receive line item"
msgstr ""
@@ -8250,7 +8344,7 @@ msgid "Delete Stock Allocation"
msgstr ""
#: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048
-#: templates/js/translated/stock.js:1428
+#: templates/js/translated/stock.js:1436
msgid "Shipped to customer"
msgstr ""
@@ -8378,144 +8472,148 @@ msgstr ""
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:412
+#: templates/js/translated/part.js:351
+msgid "Create Part Variant"
+msgstr ""
+
+#: templates/js/translated/part.js:418
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:414
+#: templates/js/translated/part.js:420
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:419
+#: templates/js/translated/part.js:425
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:421
+#: templates/js/translated/part.js:427
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:438
+#: templates/js/translated/part.js:444
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:448
+#: templates/js/translated/part.js:454
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:451
+#: templates/js/translated/part.js:457
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:475
+#: templates/js/translated/part.js:481
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:503 templates/js/translated/part.js:588
+#: templates/js/translated/part.js:509 templates/js/translated/part.js:594
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:507 templates/js/translated/part.js:592
+#: templates/js/translated/part.js:513 templates/js/translated/part.js:598
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:519
+#: templates/js/translated/part.js:525
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:529
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:638
+#: templates/js/translated/part.js:644
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1005
+#: templates/js/translated/part.js:1012
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1029
+#: templates/js/translated/part.js:1036
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1096 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:1363
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1266
+#: templates/js/translated/part.js:1273
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1289
+#: templates/js/translated/part.js:1296
#: templates/js/translated/table_filters.js:430
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1380 templates/js/translated/part.js:1552
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559
+#: templates/js/translated/stock.js:2440
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1396
+#: templates/js/translated/part.js:1403
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1571 templates/js/translated/stock.js:2301
+#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2459
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1635
+#: templates/js/translated/part.js:1642
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1649 templates/js/translated/stock.js:2345
+#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2503
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1693
+#: templates/js/translated/part.js:1700
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1744 templates/js/translated/stock.js:1234
+#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1242
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1745 templates/js/translated/stock.js:1235
+#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1243
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1751
+#: templates/js/translated/part.js:1758
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1773
+#: templates/js/translated/part.js:1780
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1787
+#: templates/js/translated/part.js:1794
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1812
+#: templates/js/translated/part.js:1819
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1867
+#: templates/js/translated/part.js:1874
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1868
+#: templates/js/translated/part.js:1875
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1969
+#: templates/js/translated/part.js:1976
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1988
+#: templates/js/translated/part.js:1995
msgid "Single Price Difference"
msgstr ""
@@ -8589,340 +8687,344 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:73
+#: templates/js/translated/stock.js:74
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:173
+#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:181
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/stock.js:93 templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:94 templates/js/translated/stock.js:183
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/stock.js:101
+#: templates/js/translated/stock.js:102
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:110
+#: templates/js/translated/stock.js:111
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:146
+#: templates/js/translated/stock.js:154
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:186
+#: templates/js/translated/stock.js:194
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:225
+#: templates/js/translated/stock.js:233
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:231
+#: templates/js/translated/stock.js:239
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:374
+#: templates/js/translated/stock.js:382
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:387
+#: templates/js/translated/stock.js:395
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:412
+#: templates/js/translated/stock.js:420
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:416 templates/js/translated/stock.js:417
+#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:433
+#: templates/js/translated/stock.js:441
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:453
+#: templates/js/translated/stock.js:461
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:462
+#: templates/js/translated/stock.js:470
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:507
+#: templates/js/translated/stock.js:515
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:518
+#: templates/js/translated/stock.js:526
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:527
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:628
+#: templates/js/translated/stock.js:636
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:629
+#: templates/js/translated/stock.js:637
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:706
+#: templates/js/translated/stock.js:714
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:707
+#: templates/js/translated/stock.js:715
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:709
+#: templates/js/translated/stock.js:717
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:710
+#: templates/js/translated/stock.js:718
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:796
+#: templates/js/translated/stock.js:804
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:797
+#: templates/js/translated/stock.js:805
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:892
+#: templates/js/translated/stock.js:900
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:893
+#: templates/js/translated/stock.js:901
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:899
+#: templates/js/translated/stock.js:907
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:900
+#: templates/js/translated/stock.js:908
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:904
+#: templates/js/translated/stock.js:912
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:905
+#: templates/js/translated/stock.js:913
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:909
+#: templates/js/translated/stock.js:917
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:910 users/models.py:206
+#: templates/js/translated/stock.js:918 users/models.py:208
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:914 templates/stock_table.html:58
+#: templates/js/translated/stock.js:922 templates/stock_table.html:58
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1003
+#: templates/js/translated/stock.js:1011
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1003
+#: templates/js/translated/stock.js:1011
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1043
+#: templates/js/translated/stock.js:1051
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1201
+#: templates/js/translated/stock.js:1209
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1211
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1208
+#: templates/js/translated/stock.js:1216
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1230
+#: templates/js/translated/stock.js:1238
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1256
+#: templates/js/translated/stock.js:1264
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1313
+#: templates/js/translated/stock.js:1321
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1420
+#: templates/js/translated/stock.js:1428
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1424
+#: templates/js/translated/stock.js:1432
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1432
+#: templates/js/translated/stock.js:1440
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1438
+#: templates/js/translated/stock.js:1446
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1596
+#: templates/js/translated/stock.js:1604
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1601
+#: templates/js/translated/stock.js:1609
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1612
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/stock.js:1616
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1610
+#: templates/js/translated/stock.js:1618
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1616
+#: templates/js/translated/stock.js:1624
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1626
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1620
+#: templates/js/translated/stock.js:1628
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1625
+#: templates/js/translated/stock.js:1633
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1632
+#: templates/js/translated/stock.js:1640
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1634
+#: templates/js/translated/stock.js:1642
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1644
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1640
+#: templates/js/translated/stock.js:1648
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1698
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1763
+#: templates/js/translated/stock.js:1771
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1801
+#: templates/js/translated/stock.js:1809
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1822 templates/js/translated/stock.js:1870
+#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:1878
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1910
+#: templates/js/translated/stock.js:1918
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1937
+#: templates/js/translated/stock.js:1945
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1939
+#: templates/js/translated/stock.js:1947
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:2138
+#: templates/js/translated/stock.js:2146
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2152
+#: templates/js/translated/stock.js:2160
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2153
+#: templates/js/translated/stock.js:2161
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2377
+#: templates/js/translated/stock.js:2340
+msgid "Allocated Quantity"
+msgstr ""
+
+#: templates/js/translated/stock.js:2535
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:2399
+#: templates/js/translated/stock.js:2557
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2424
+#: templates/js/translated/stock.js:2582
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2443
+#: templates/js/translated/stock.js:2601
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2462
+#: templates/js/translated/stock.js:2620
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2480
+#: templates/js/translated/stock.js:2638
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2503
+#: templates/js/translated/stock.js:2661
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2511
+#: templates/js/translated/stock.js:2669
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2552
+#: templates/js/translated/stock.js:2710
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2553
+#: templates/js/translated/stock.js:2711
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2604
+#: templates/js/translated/stock.js:2762
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2655
+#: templates/js/translated/stock.js:2813
msgid "Uninstall Stock Item"
msgstr ""
@@ -9194,11 +9296,11 @@ msgstr ""
msgid "Sell"
msgstr ""
-#: templates/navbar.html:113
+#: templates/navbar.html:114
msgid "Logout"
msgstr ""
-#: templates/navbar.html:115
+#: templates/navbar.html:116
msgid "Login"
msgstr ""
@@ -9246,31 +9348,43 @@ msgstr ""
msgid "Server is deployed using docker"
msgstr ""
-#: templates/stats.html:40
-msgid "Server status"
+#: templates/stats.html:39
+msgid "Plugin Support"
msgstr ""
#: templates/stats.html:43
-msgid "Healthy"
+msgid "Plugin support enabled"
msgstr ""
#: templates/stats.html:45
-msgid "Issues detected"
+msgid "Plugin support disabled"
msgstr ""
#: templates/stats.html:52
-msgid "Background Worker"
+msgid "Server status"
msgstr ""
#: templates/stats.html:55
+msgid "Healthy"
+msgstr ""
+
+#: templates/stats.html:57
+msgid "Issues detected"
+msgstr ""
+
+#: templates/stats.html:64
+msgid "Background Worker"
+msgstr ""
+
+#: templates/stats.html:67
msgid "Background worker not running"
msgstr ""
-#: templates/stats.html:63
+#: templates/stats.html:75
msgid "Email Settings"
msgstr ""
-#: templates/stats.html:66
+#: templates/stats.html:78
msgid "Email settings not configured"
msgstr ""
@@ -9366,35 +9480,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:193
+#: users/models.py:195
msgid "Permission set"
msgstr ""
-#: users/models.py:201
+#: users/models.py:203
msgid "Group"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
msgid "View"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
msgid "Permission to view items"
msgstr ""
-#: users/models.py:206
+#: users/models.py:208
msgid "Permission to add items"
msgstr ""
-#: users/models.py:208
+#: users/models.py:210
msgid "Change"
msgstr ""
-#: users/models.py:208
+#: users/models.py:210
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:210
+#: users/models.py:212
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/it/LC_MESSAGES/django.po b/InvenTree/locale/it/LC_MESSAGES/django.po
index 06cccdc4f0..6750a4152a 100644
--- a/InvenTree/locale/it/LC_MESSAGES/django.po
+++ b/InvenTree/locale/it/LC_MESSAGES/django.po
@@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-01-10 03:54+0000\n"
-"PO-Revision-Date: 2022-01-10 03:58\n"
+"POT-Creation-Date: 2022-01-29 00:17+0000\n"
+"PO-Revision-Date: 2022-01-29 01:11\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
"Language: it_IT\n"
@@ -18,15 +18,15 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 138\n"
-#: InvenTree/api.py:64
+#: InvenTree/api.py:55
msgid "API endpoint not found"
msgstr "Endpoint API non trovato"
-#: InvenTree/api.py:110
+#: InvenTree/api.py:101
msgid "No action specified"
msgstr "Nessuna azione specificata"
-#: InvenTree/api.py:124
+#: InvenTree/api.py:116
msgid "No matching action found"
msgstr "Nessuna azione corrispondente trovata"
@@ -80,41 +80,41 @@ msgstr "Conferma indirizzo email"
msgid "You must type the same email each time."
msgstr "È necessario digitare la stessa e-mail ogni volta."
-#: InvenTree/helpers.py:437
+#: InvenTree/helpers.py:439
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr "Seriale Duplicato: {n}"
-#: InvenTree/helpers.py:444 order/models.py:279 order/models.py:420
+#: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425
#: stock/views.py:1231
msgid "Invalid quantity provided"
msgstr "Quantità inserita non valida"
-#: InvenTree/helpers.py:447
+#: InvenTree/helpers.py:449
msgid "Empty serial number string"
msgstr "Numero seriale vuoto"
-#: InvenTree/helpers.py:469 InvenTree/helpers.py:472 InvenTree/helpers.py:475
-#: InvenTree/helpers.py:500
+#: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477
+#: InvenTree/helpers.py:502
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Gruppo non valido: {g}"
-#: InvenTree/helpers.py:510
+#: InvenTree/helpers.py:512
#, python-brace-format
msgid "Invalid group {group}"
msgstr ""
-#: InvenTree/helpers.py:516
+#: InvenTree/helpers.py:518
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:522
+#: InvenTree/helpers.py:524
msgid "No serial numbers found"
msgstr "Nessun numero di serie trovato"
-#: InvenTree/helpers.py:526
+#: InvenTree/helpers.py:528
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Il numero dei numeri seriali univoci ({s}) deve essere uguale alla quantità ({q})"
@@ -127,7 +127,7 @@ msgstr "File mancante"
msgid "Missing external link"
msgstr "Link esterno mancante"
-#: InvenTree/models.py:132 stock/models.py:1967
+#: InvenTree/models.py:132 stock/models.py:1995
#: templates/js/translated/attachment.js:119
msgid "Attachment"
msgstr "Allegato"
@@ -137,15 +137,15 @@ msgid "Select file to attach"
msgstr "Seleziona file da allegare"
#: InvenTree/models.py:139 company/models.py:131 company/models.py:348
-#: company/models.py:564 order/models.py:124 part/models.py:828
+#: company/models.py:564 order/models.py:127 part/models.py:830
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1317
+#: templates/js/translated/company.js:829 templates/js/translated/part.js:1324
msgid "Link"
msgstr "Link"
-#: InvenTree/models.py:140 build/models.py:330 part/models.py:829
-#: stock/models.py:527
+#: InvenTree/models.py:140 build/models.py:332 part/models.py:831
+#: stock/models.py:529
msgid "Link to external URL"
msgstr "Link a URL esterno"
@@ -157,10 +157,11 @@ msgstr "Commento"
msgid "File comment"
msgstr "Commento del file"
-#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213
-#: common/models.py:1214 part/models.py:2258 part/models.py:2278
+#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1223
+#: common/models.py:1224 common/models.py:1452 common/models.py:1453
+#: part/models.py:2265 part/models.py:2285
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2534
+#: templates/js/translated/stock.js:2692
msgid "User"
msgstr "Utente"
@@ -197,42 +198,42 @@ msgstr "Errore nella rinominazione del file"
msgid "Invalid choice"
msgstr "Scelta non valida"
-#: InvenTree/models.py:277 InvenTree/models.py:278 company/models.py:415
-#: label/models.py:112 part/models.py:772 part/models.py:2442
-#: plugin/models.py:40 report/models.py:181
+#: InvenTree/models.py:277 InvenTree/models.py:278 common/models.py:1438
+#: company/models.py:415 label/models.py:112 part/models.py:774
+#: part/models.py:2449 plugin/models.py:40 report/models.py:181
#: templates/InvenTree/settings/mixins/urls.html:13
-#: templates/InvenTree/settings/plugin.html:47
-#: templates/InvenTree/settings/plugin.html:124
+#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin.html:125
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:279
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:561
-#: templates/js/translated/part.js:700 templates/js/translated/part.js:1624
-#: templates/js/translated/stock.js:2327
+#: templates/InvenTree/settings/settings.html:282
+#: templates/js/translated/company.js:641 templates/js/translated/part.js:567
+#: templates/js/translated/part.js:706 templates/js/translated/part.js:1631
+#: templates/js/translated/stock.js:2485
msgid "Name"
msgstr "Nome"
-#: InvenTree/models.py:284 build/models.py:207
+#: InvenTree/models.py:284 build/models.py:209
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:73 label/models.py:119
-#: order/models.py:122 part/models.py:795 part/templates/part/category.html:74
+#: order/models.py:125 part/models.py:797 part/templates/part/category.html:74
#: part/templates/part/part_base.html:163
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:93
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:327 templates/js/translated/bom.js:540
+#: templates/js/translated/bom.js:339 templates/js/translated/bom.js:552
#: templates/js/translated/build.js:1682 templates/js/translated/company.js:345
#: templates/js/translated/company.js:551
#: templates/js/translated/company.js:840 templates/js/translated/order.js:836
#: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258
-#: templates/js/translated/part.js:620 templates/js/translated/part.js:992
-#: templates/js/translated/part.js:1077 templates/js/translated/part.js:1247
-#: templates/js/translated/part.js:1643 templates/js/translated/part.js:1712
-#: templates/js/translated/stock.js:1569 templates/js/translated/stock.js:2339
-#: templates/js/translated/stock.js:2384
+#: templates/js/translated/part.js:626 templates/js/translated/part.js:999
+#: templates/js/translated/part.js:1084 templates/js/translated/part.js:1254
+#: templates/js/translated/part.js:1650 templates/js/translated/part.js:1719
+#: templates/js/translated/stock.js:1577 templates/js/translated/stock.js:2314
+#: templates/js/translated/stock.js:2497 templates/js/translated/stock.js:2542
msgid "Description"
msgstr "Descrizione"
@@ -244,7 +245,7 @@ msgstr "Descrizione (opzionale)"
msgid "parent"
msgstr "genitore"
-#: InvenTree/serializers.py:65 part/models.py:2727
+#: InvenTree/serializers.py:65 part/models.py:2734
msgid "Must be a valid number"
msgstr "Deve essere un numero valido"
@@ -252,83 +253,83 @@ msgstr "Deve essere un numero valido"
msgid "Filename"
msgstr "Nome del file"
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:661
msgid "German"
msgstr "Tedesco"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:662
msgid "Greek"
msgstr "Greco"
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:663
msgid "English"
msgstr "Inglese"
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:664
msgid "Spanish"
msgstr "Spagnolo"
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:665
msgid "Spanish (Mexican)"
msgstr "Spagnolo (Messicano)"
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:666
msgid "French"
msgstr "Francese"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:667
msgid "Hebrew"
msgstr "Ebraico"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:668
msgid "Italian"
msgstr "Italiano"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:669
msgid "Japanese"
msgstr "Giapponese"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:670
msgid "Korean"
msgstr "Coreano"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:671
msgid "Dutch"
msgstr "Olandese"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:672
msgid "Norwegian"
msgstr "Norvegese"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:673
msgid "Polish"
msgstr "Polacco"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:674
msgid "Portugese"
msgstr "Portoghese"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:675
msgid "Russian"
msgstr "Russo"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:676
msgid "Swedish"
msgstr "Svedese"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:677
msgid "Thai"
msgstr "Thailandese"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:678
msgid "Turkish"
msgstr "Turco"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:679
msgid "Vietnamese"
msgstr "Vietnamita"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:680
msgid "Chinese"
msgstr "Cinese"
@@ -374,7 +375,7 @@ msgstr "Perso"
msgid "Returned"
msgstr "Reso"
-#: InvenTree/status_codes.py:143 order/models.py:941
+#: InvenTree/status_codes.py:143 order/models.py:961
#: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255
msgid "Shipped"
msgstr "Spedito"
@@ -455,7 +456,7 @@ msgstr "Diviso dall'elemento genitore"
msgid "Split child item"
msgstr "Dividi elemento figlio"
-#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2064
+#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2072
msgid "Merged stock items"
msgstr ""
@@ -543,56 +544,56 @@ msgstr "Le password devono coincidere"
msgid "System Information"
msgstr "Informazioni sistema"
-#: barcodes/api.py:54 barcodes/api.py:151
+#: barcodes/api.py:54 barcodes/api.py:152
msgid "Must provide barcode_data parameter"
msgstr "È necessario fornire il parametro barcode_data"
-#: barcodes/api.py:127
+#: barcodes/api.py:128
msgid "No match found for barcode data"
msgstr "Nessuna corrispondenza trovata per i dati del codice a barre"
-#: barcodes/api.py:129
+#: barcodes/api.py:130
msgid "Match found for barcode data"
msgstr "Corrispondenza trovata per i dati del codice a barre"
-#: barcodes/api.py:154
+#: barcodes/api.py:155
msgid "Must provide stockitem parameter"
msgstr "È necessario fornire il parametro stockitem"
-#: barcodes/api.py:161
+#: barcodes/api.py:162
msgid "No matching stock item found"
msgstr "Nessun elemento corrispondente trovato"
-#: barcodes/api.py:191
+#: barcodes/api.py:193
msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:195
+#: barcodes/api.py:197
msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:199
+#: barcodes/api.py:201
msgid "Barcode already matches Part"
msgstr ""
-#: barcodes/api.py:205 barcodes/api.py:217
+#: barcodes/api.py:207 barcodes/api.py:219
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:223
+#: barcodes/api.py:225
msgid "Barcode associated with Stock Item"
msgstr ""
-#: build/forms.py:36 build/models.py:1286
+#: build/forms.py:36 build/models.py:1293
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:35 common/models.py:1253
+#: build/templates/build/detail.html:35 common/models.py:1263
#: company/forms.py:42 company/templates/company/supplier_part.html:251
-#: order/models.py:796 order/models.py:1207 order/serializers.py:810
+#: order/models.py:805 order/models.py:1229 order/serializers.py:816
#: order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:145
-#: part/forms.py:161 part/forms.py:177 part/models.py:2629
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144
+#: part/forms.py:160 part/forms.py:176 part/models.py:2636
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:962 part/templates/part/detail.html:1048
+#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -603,7 +604,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:181
#: stock/templates/stock/item_base.html:262
#: stock/templates/stock/item_base.html:270
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:555
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:567
#: templates/js/translated/build.js:295 templates/js/translated/build.js:495
#: templates/js/translated/build.js:689 templates/js/translated/build.js:699
#: templates/js/translated/build.js:1075 templates/js/translated/build.js:1422
@@ -611,11 +612,11 @@ msgstr ""
#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056
#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859
#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036
-#: templates/js/translated/order.js:2150 templates/js/translated/part.js:900
-#: templates/js/translated/part.js:1855 templates/js/translated/part.js:1978
-#: templates/js/translated/part.js:2056 templates/js/translated/stock.js:383
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:750
-#: templates/js/translated/stock.js:2519 templates/js/translated/stock.js:2621
+#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906
+#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985
+#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:391
+#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758
+#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2779
msgid "Quantity"
msgstr "Quantità"
@@ -623,9 +624,9 @@ msgstr "Quantità"
msgid "Enter quantity for build output"
msgstr "Inserisci la quantità per l'output di compilazione"
-#: build/forms.py:41 order/serializers.py:814 stock/forms.py:81
-#: stock/serializers.py:314 templates/js/translated/stock.js:230
-#: templates/js/translated/stock.js:384
+#: build/forms.py:41 order/serializers.py:820 stock/forms.py:81
+#: stock/serializers.py:314 templates/js/translated/stock.js:238
+#: templates/js/translated/stock.js:392
msgid "Serial Numbers"
msgstr "Codice Seriale"
@@ -649,18 +650,18 @@ msgstr "Conferma annullamento"
msgid "Confirm build cancellation"
msgstr ""
-#: build/models.py:133
+#: build/models.py:135
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:139 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:457
+#: templates/js/translated/build.js:457 templates/js/translated/stock.js:2290
msgid "Build Order"
msgstr ""
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:140 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:92
#: order/templates/order/so_sidebar.html:13
@@ -670,40 +671,40 @@ msgstr ""
msgid "Build Orders"
msgstr ""
-#: build/models.py:198
+#: build/models.py:200
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:210 order/models.py:536
-#: order/models.py:803 part/models.py:2638
+#: build/models.py:201 order/models.py:213 order/models.py:541
+#: order/models.py:812 part/models.py:2645
#: 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/translated/bom.js:547 templates/js/translated/build.js:1179
+#: templates/js/translated/bom.js:559 templates/js/translated/build.js:1179
#: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144
msgid "Reference"
msgstr "Riferimento"
-#: build/models.py:210
+#: build/models.py:212
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:219 build/templates/build/build_base.html:164
+#: build/models.py:221 build/templates/build/build_base.html:164
#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:222
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:225 build/templates/build/build_base.html:77
+#: build/models.py:227 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
-#: order/models.py:856 order/models.py:930
-#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
-#: part/models.py:2204 part/models.py:2220 part/models.py:2239
-#: part/models.py:2256 part/models.py:2358 part/models.py:2480
-#: part/models.py:2613 part/models.py:2920 part/serializers.py:658
+#: order/models.py:876 order/models.py:950
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359
+#: part/models.py:2211 part/models.py:2227 part/models.py:2246
+#: part/models.py:2263 part/models.py:2365 part/models.py:2487
+#: part/models.py:2620 part/models.py:2927 part/serializers.py:658
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -713,205 +714,205 @@ msgstr ""
#: templates/InvenTree/search.html:80
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
-#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:326
-#: templates/js/translated/bom.js:505 templates/js/translated/build.js:680
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:338
+#: templates/js/translated/bom.js:517 templates/js/translated/build.js:680
#: templates/js/translated/build.js:1048 templates/js/translated/build.js:1419
#: templates/js/translated/build.js:1687 templates/js/translated/company.js:492
#: templates/js/translated/company.js:749 templates/js/translated/order.js:84
#: templates/js/translated/order.js:586 templates/js/translated/order.js:1004
#: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933
-#: templates/js/translated/order.js:2128 templates/js/translated/part.js:977
-#: templates/js/translated/part.js:1058 templates/js/translated/part.js:1225
-#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:719
-#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1526
-#: templates/js/translated/stock.js:2609
+#: templates/js/translated/order.js:2128 templates/js/translated/part.js:984
+#: templates/js/translated/part.js:1065 templates/js/translated/part.js:1232
+#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727
+#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1534
+#: templates/js/translated/stock.js:2767
msgid "Part"
msgstr "Articolo"
-#: build/models.py:233
+#: build/models.py:235
msgid "Select part to build"
msgstr ""
-#: build/models.py:238
+#: build/models.py:240
msgid "Sales Order Reference"
msgstr "Numero di riferimento ordine di vendita"
-#: build/models.py:242
+#: build/models.py:244
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 templates/js/translated/build.js:1407
+#: build/models.py:249 templates/js/translated/build.js:1407
#: templates/js/translated/order.js:1564
msgid "Source Location"
msgstr "Posizione Di Origine"
-#: build/models.py:251
+#: build/models.py:253
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr "Seleziona la posizione da cui prelevare la giacenza (lasciare vuoto per prelevare da qualsiasi posizione di magazzino)"
-#: build/models.py:256
+#: build/models.py:258
msgid "Destination Location"
msgstr "Posizione Della Destinazione"
-#: build/models.py:260
+#: build/models.py:262
msgid "Select location where the completed items will be stored"
msgstr "Seleziona il luogo in cui gli articoli completati saranno immagazzinati"
-#: build/models.py:264
+#: build/models.py:266
msgid "Build Quantity"
msgstr ""
-#: build/models.py:267
+#: build/models.py:269
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:271
+#: build/models.py:273
msgid "Completed items"
msgstr "Articoli completati"
-#: build/models.py:273
+#: build/models.py:275
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:277 part/templates/part/part_base.html:234
+#: build/models.py:279 part/templates/part/part_base.html:234
msgid "Build Status"
msgstr ""
-#: build/models.py:281
+#: build/models.py:283
msgid "Build status code"
msgstr ""
-#: build/models.py:285 stock/models.py:531
+#: build/models.py:287 stock/models.py:533
msgid "Batch Code"
msgstr ""
-#: build/models.py:289
+#: build/models.py:291
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:126 part/models.py:967
+#: build/models.py:294 order/models.py:129 part/models.py:969
#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271
msgid "Creation Date"
msgstr "Data di creazione"
-#: build/models.py:296 order/models.py:558
+#: build/models.py:298 order/models.py:563
msgid "Target completion date"
msgstr "Data completamento obiettivo"
-#: build/models.py:297
+#: build/models.py:299
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:252
+#: build/models.py:302 order/models.py:255
#: templates/js/translated/build.js:1758
msgid "Completion Date"
msgstr "Data di completamento"
-#: build/models.py:306
+#: build/models.py:308
msgid "completed by"
msgstr "Completato da"
-#: build/models.py:314 templates/js/translated/build.js:1729
+#: build/models.py:316 templates/js/translated/build.js:1729
msgid "Issued by"
msgstr "Rilasciato da"
-#: build/models.py:315
+#: build/models.py:317
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:323 build/templates/build/build_base.html:185
-#: build/templates/build/detail.html:116 order/models.py:140
+#: build/models.py:325 build/templates/build/build_base.html:185
+#: build/templates/build/detail.html:116 order/models.py:143
#: order/templates/order/order_base.html:170
-#: order/templates/order/sales_order_base.html:182 part/models.py:971
+#: order/templates/order/sales_order_base.html:182 part/models.py:973
#: report/templates/report/inventree_build_order_base.html:159
#: templates/js/translated/build.js:1741 templates/js/translated/order.js:864
msgid "Responsible"
msgstr "Responsabile"
-#: build/models.py:324
+#: build/models.py:326
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:329 build/templates/build/detail.html:102
+#: build/models.py:331 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:525
+#: part/templates/part/part_base.html:354 stock/models.py:527
#: stock/templates/stock/item_base.html:373
msgid "External Link"
msgstr "Collegamento esterno"
-#: build/models.py:334 build/serializers.py:201
+#: build/models.py:336 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
-#: order/models.py:144 order/models.py:805 order/models.py:1051
+#: order/models.py:147 order/models.py:814 order/models.py:1071
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:17 part/models.py:956
-#: part/templates/part/detail.html:120 part/templates/part/part_sidebar.html:50
+#: order/templates/order/so_sidebar.html:17 part/models.py:958
+#: part/templates/part/detail.html:137 part/templates/part/part_sidebar.html:54
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:597
-#: stock/models.py:1867 stock/models.py:1973 stock/serializers.py:332
-#: stock/serializers.py:639 stock/serializers.py:737 stock/serializers.py:869
-#: stock/templates/stock/stock_sidebar.html:21
-#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:711
+#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:599
+#: stock/models.py:1895 stock/models.py:2001 stock/serializers.py:332
+#: stock/serializers.py:640 stock/serializers.py:738 stock/serializers.py:870
+#: stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:723
#: templates/js/translated/company.js:845 templates/js/translated/order.js:1149
#: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280
-#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1795
+#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1803
msgid "Notes"
msgstr "Note"
-#: build/models.py:335
+#: build/models.py:337
msgid "Extra build notes"
msgstr ""
-#: build/models.py:710
+#: build/models.py:717
msgid "No build output specified"
msgstr ""
-#: build/models.py:713
+#: build/models.py:720
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:716
+#: build/models.py:723
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1108
+#: build/models.py:1115
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1117
+#: build/models.py:1124
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr "La quantità assegnata ({q}) non deve essere maggiore della quantità disponibile ({a})"
-#: build/models.py:1127
+#: build/models.py:1134
msgid "Stock item is over-allocated"
msgstr "L'articolo in giacenza è sovrallocato"
-#: build/models.py:1133 order/models.py:1167
+#: build/models.py:1140 order/models.py:1189
msgid "Allocation quantity must be greater than zero"
msgstr "La quantità di assegnazione deve essere maggiore di zero"
-#: build/models.py:1139
+#: build/models.py:1146
msgid "Quantity must be 1 for serialized stock"
msgstr "La quantità deve essere 1 per lo stock serializzato"
-#: build/models.py:1196
+#: build/models.py:1203
msgid "Selected stock item not found in BOM"
msgstr "Articolo in giacenza selezionato non trovato nel BOM"
-#: build/models.py:1256 stock/templates/stock/item_base.html:345
+#: build/models.py:1263 stock/templates/stock/item_base.html:345
#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1660
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1257
+#: build/models.py:1264
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1273 build/serializers.py:388 order/serializers.py:690
-#: order/serializers.py:708 stock/serializers.py:577 stock/serializers.py:695
+#: build/models.py:1280 build/serializers.py:388 order/serializers.py:696
+#: order/serializers.py:714 stock/serializers.py:578 stock/serializers.py:696
#: stock/templates/stock/item_base.html:9
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:367
@@ -920,24 +921,24 @@ msgstr ""
#: templates/js/translated/order.js:85 templates/js/translated/order.js:1577
#: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837
#: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030
-#: templates/js/translated/stock.js:555 templates/js/translated/stock.js:720
-#: templates/js/translated/stock.js:2470
+#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728
+#: templates/js/translated/stock.js:2628
msgid "Stock Item"
msgstr "Articoli in magazzino"
-#: build/models.py:1274
+#: build/models.py:1281
msgid "Source stock item"
msgstr "Origine giacenza articolo"
-#: build/models.py:1287
+#: build/models.py:1294
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1295
+#: build/models.py:1302
msgid "Install into"
msgstr "Installa in"
-#: build/models.py:1296
+#: build/models.py:1303
msgid "Destination stock item"
msgstr "Destinazione articolo in giacenza"
@@ -962,16 +963,16 @@ msgid "This build output is not fully allocated"
msgstr ""
#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294
-#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:730
-#: stock/serializers.py:971 stock/templates/stock/item_base.html:313
+#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:731
+#: stock/serializers.py:972 stock/templates/stock/item_base.html:313
#: templates/js/translated/barcode.js:384
#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:480
#: templates/js/translated/build.js:1087 templates/js/translated/order.js:508
#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955
#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044
-#: templates/js/translated/part.js:179 templates/js/translated/stock.js:556
-#: templates/js/translated/stock.js:721 templates/js/translated/stock.js:928
-#: templates/js/translated/stock.js:1676 templates/js/translated/stock.js:2411
+#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564
+#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936
+#: templates/js/translated/stock.js:1684 templates/js/translated/stock.js:2569
msgid "Location"
msgstr "Posizione"
@@ -980,12 +981,12 @@ msgid "Location for completed build outputs"
msgstr "Posizione per gli output di build completati"
#: build/serializers.py:197 build/templates/build/build_base.html:137
-#: build/templates/build/detail.html:63 order/models.py:552
+#: build/templates/build/detail.html:63 order/models.py:557
#: order/serializers.py:247 stock/templates/stock/item_base.html:187
#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1716
#: templates/js/translated/order.js:591 templates/js/translated/order.js:840
-#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1651
-#: templates/js/translated/stock.js:2488 templates/js/translated/stock.js:2637
+#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:2646 templates/js/translated/stock.js:2795
msgid "Status"
msgstr "Stato"
@@ -1021,8 +1022,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:313 build/serializers.py:362 part/models.py:2753
-#: part/models.py:2912
+#: build/serializers.py:313 build/serializers.py:362 part/models.py:2760
+#: part/models.py:2919
msgid "BOM Item"
msgstr "Distinta base (Bom)"
@@ -1038,16 +1039,16 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:394 stock/serializers.py:584
+#: build/serializers.py:394 stock/serializers.py:585
msgid "Item must be in stock"
msgstr "L'articolo deve essere disponibile"
-#: build/serializers.py:408 order/models.py:277 order/serializers.py:240
-#: stock/models.py:365 stock/models.py:1077 stock/serializers.py:305
+#: build/serializers.py:408 order/models.py:280 order/serializers.py:240
+#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr "La quantità deve essere maggiore di zero"
-#: build/serializers.py:450 order/serializers.py:741
+#: build/serializers.py:450 order/serializers.py:747
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Quantità disponibile ({q}) superata"
@@ -1060,7 +1061,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:491 order/serializers.py:984
+#: build/serializers.py:491 order/serializers.py:990
msgid "Allocation items must be provided"
msgstr "Deve essere indicata l'allocazione dell'articolo"
@@ -1164,13 +1165,13 @@ msgid "Completed"
msgstr "Completato"
#: build/templates/build/build_base.html:171
-#: build/templates/build/detail.html:95 order/models.py:927
-#: order/models.py:1023 order/templates/order/sales_order_base.html:9
+#: build/templates/build/detail.html:95 order/models.py:947
+#: order/models.py:1043 order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/order.js:1218
+#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2304
msgid "Sales Order"
msgstr "Ordini di Vendita"
@@ -1224,7 +1225,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr "Lo stock può essere prelevato da qualsiasi posizione disponibile."
-#: build/templates/build/detail.html:50 order/models.py:878 stock/forms.py:136
+#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:136
#: templates/js/translated/order.js:592 templates/js/translated/order.js:1138
msgid "Destination"
msgstr "Destinazione"
@@ -1239,7 +1240,7 @@ msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:331
-#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2644
+#: templates/js/translated/stock.js:1673 templates/js/translated/stock.js:2802
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:238
msgid "Batch"
@@ -1343,9 +1344,9 @@ msgstr ""
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:107
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:196
-#: part/templates/part/part_sidebar.html:48 stock/templates/stock/item.html:95
-#: stock/templates/stock/stock_sidebar.html:19
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:213
+#: part/templates/part/part_sidebar.html:52 stock/templates/stock/item.html:112
+#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr "Allegati"
@@ -1360,8 +1361,8 @@ msgstr "Genera Note"
#: order/templates/order/purchase_order_detail.html:108
#: order/templates/order/sales_order_detail.html:127
#: order/templates/order/sales_order_detail.html:186
-#: part/templates/part/detail.html:124 stock/templates/stock/item.html:115
-#: stock/templates/stock/item.html:205
+#: part/templates/part/detail.html:141 stock/templates/stock/item.html:132
+#: stock/templates/stock/item.html:235
msgid "Edit Notes"
msgstr "Modifica Note"
@@ -1373,7 +1374,7 @@ msgstr "Assegnazione Completa"
msgid "All untracked stock items have been allocated"
msgstr "Tutte le giacenze non tracciate sono state assegnate"
-#: build/templates/build/index.html:18 part/templates/part/detail.html:303
+#: build/templates/build/index.html:18 part/templates/part/detail.html:320
msgid "New Build Order"
msgstr ""
@@ -1453,23 +1454,23 @@ msgstr ""
msgid "Delete Build Order"
msgstr "Elimina Ordine Build"
-#: common/files.py:67
+#: common/files.py:65
msgid "Unsupported file format: {ext.upper()}"
msgstr "Formato file non supportato: {ext.upper()}"
-#: common/files.py:69
+#: common/files.py:67
msgid "Error reading file (invalid encoding)"
msgstr "Errore nella lettura del file (codifica non valida)"
-#: common/files.py:74
+#: common/files.py:72
msgid "Error reading file (invalid format)"
msgstr "Errore nella lettura del file (formato non valido)"
-#: common/files.py:76
+#: common/files.py:74
msgid "Error reading file (incorrect dimension)"
msgstr "Errore nella lettura del file (dimensione errata)"
-#: common/files.py:78
+#: common/files.py:76
msgid "Error reading file (data could be corrupted)"
msgstr "Errore di lettura del file (i dati potrebbero essere danneggiati)"
@@ -1490,740 +1491,828 @@ msgstr "{name.title()} File"
msgid "Select {name} file to upload"
msgstr "Seleziona il file {name} da caricare"
-#: common/models.py:344 common/models.py:998 common/models.py:1206
-msgid "Settings key (must be unique - case insensitive"
-msgstr "Tasto impostazioni (deve essere univoco - maiuscole e minuscole"
+#: common/models.py:352
+msgid "Settings key (must be unique - case insensitive)"
+msgstr ""
-#: common/models.py:346
+#: common/models.py:354
msgid "Settings value"
msgstr "Valore impostazioni"
-#: common/models.py:380
+#: common/models.py:388
msgid "Chosen value is not a valid option"
msgstr "Il valore specificato non è un opzione valida"
-#: common/models.py:400
+#: common/models.py:408
msgid "Value must be a boolean value"
msgstr "Il valore deve essere un valore booleano"
-#: common/models.py:411
+#: common/models.py:419
msgid "Value must be an integer value"
msgstr "Il valore deve essere un intero"
-#: common/models.py:434
+#: common/models.py:442
msgid "Key string must be unique"
msgstr "La stringa chiave deve essere univoca"
-#: common/models.py:553
+#: common/models.py:561
msgid "No group"
msgstr "Nessun gruppo"
-#: common/models.py:595
+#: common/models.py:603
msgid "Restart required"
msgstr "Riavvio richiesto"
-#: common/models.py:596
+#: common/models.py:604
msgid "A setting has been changed which requires a server restart"
msgstr "È stata modificata un'impostazione che richiede un riavvio del server"
-#: common/models.py:603
+#: common/models.py:611
msgid "InvenTree Instance Name"
msgstr "Nome Istanza InvenTree"
-#: common/models.py:605
+#: common/models.py:613
msgid "String descriptor for the server instance"
msgstr "Descrittore stringa per l'istanza del server"
-#: common/models.py:609
+#: common/models.py:617
msgid "Use instance name"
msgstr "Utilizza nome istanza"
-#: common/models.py:610
+#: common/models.py:618
msgid "Use the instance name in the title-bar"
msgstr "Usa il nome dell'istanza nella barra del titolo"
-#: common/models.py:616 company/models.py:100 company/models.py:101
+#: common/models.py:624 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr "Nome azienda"
-#: common/models.py:617
+#: common/models.py:625
msgid "Internal company name"
msgstr "Nome interno dell'azienda"
-#: common/models.py:622
+#: common/models.py:630
msgid "Base URL"
msgstr "URL Base"
-#: common/models.py:623
+#: common/models.py:631
msgid "Base URL for server instance"
msgstr "URL di base per l'istanza del server"
-#: common/models.py:629
+#: common/models.py:637
msgid "Default Currency"
msgstr "Valuta predefinita"
-#: common/models.py:630
+#: common/models.py:638
msgid "Default currency"
msgstr "Valuta predefinita"
-#: common/models.py:636
+#: common/models.py:644
msgid "Download from URL"
msgstr "Scarica dall'URL"
-#: common/models.py:637
+#: common/models.py:645
msgid "Allow download of remote images and files from external URL"
msgstr "Consenti il download di immagini e file remoti da URL esterno"
-#: common/models.py:643 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:651 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr "Supporto Codice A Barre"
-#: common/models.py:644
+#: common/models.py:652
msgid "Enable barcode scanner support"
msgstr "Abilita supporto scanner codici a barre"
-#: common/models.py:650
+#: common/models.py:658
msgid "IPN Regex"
msgstr "IPN Regex"
-#: common/models.py:651
+#: common/models.py:659
msgid "Regular expression pattern for matching Part IPN"
msgstr "Schema di espressione regolare per l'articolo corrispondente IPN"
-#: common/models.py:655
+#: common/models.py:663
msgid "Allow Duplicate IPN"
msgstr "Consenti duplicati IPN"
-#: common/models.py:656
+#: common/models.py:664
msgid "Allow multiple parts to share the same IPN"
msgstr "Permetti a più articoli di condividere lo stesso IPN"
-#: common/models.py:662
+#: common/models.py:670
msgid "Allow Editing IPN"
msgstr "Permetti modifiche al part number interno (IPN)"
-#: common/models.py:663
+#: common/models.py:671
msgid "Allow changing the IPN value while editing a part"
msgstr "Consenti di modificare il valore del part number durante la modifica di un articolo"
-#: common/models.py:669
+#: common/models.py:677
msgid "Copy Part BOM Data"
msgstr "Copia I Dati Della distinta base dell'articolo"
-#: common/models.py:670
+#: common/models.py:678
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:676
+#: common/models.py:684
msgid "Copy Part Parameter Data"
msgstr "Copia I Dati Parametro dell'articolo"
-#: common/models.py:677
+#: common/models.py:685
msgid "Copy parameter data by default when duplicating a part"
msgstr "Copia i dati dei parametri di default quando si duplica un articolo"
-#: common/models.py:683
+#: common/models.py:691
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:684
+#: common/models.py:692
msgid "Copy test data by default when duplicating a part"
msgstr "Copia i dati di prova di default quando si duplica un articolo"
-#: common/models.py:690
+#: common/models.py:698
msgid "Copy Category Parameter Templates"
msgstr "Copia Template Parametri Categoria"
-#: common/models.py:691
+#: common/models.py:699
msgid "Copy category parameter templates when creating a part"
msgstr "Copia i modelli dei parametri categoria quando si crea un articolo"
-#: common/models.py:697 part/models.py:2482 report/models.py:187
+#: common/models.py:705 part/models.py:2489 report/models.py:187
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:422
msgid "Template"
msgstr "Template"
-#: common/models.py:698
+#: common/models.py:706
msgid "Parts are templates by default"
msgstr "Gli articoli sono modelli per impostazione predefinita"
-#: common/models.py:704 part/models.py:919 templates/js/translated/bom.js:1068
+#: common/models.py:712 part/models.py:921 templates/js/translated/bom.js:1082
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:434
msgid "Assembly"
msgstr "Assemblaggio"
-#: common/models.py:705
+#: common/models.py:713
msgid "Parts can be assembled from other components by default"
msgstr "Gli articoli possono essere assemblate da altri componenti per impostazione predefinita"
-#: common/models.py:711 part/models.py:925
+#: common/models.py:719 part/models.py:927
#: templates/js/translated/table_filters.js:438
msgid "Component"
msgstr "Componente"
-#: common/models.py:712
+#: common/models.py:720
msgid "Parts can be used as sub-components by default"
msgstr "Gli articoli possono essere assemblati da altri componenti per impostazione predefinita"
-#: common/models.py:718 part/models.py:936
+#: common/models.py:726 part/models.py:938
msgid "Purchaseable"
msgstr "Acquistabile"
-#: common/models.py:719
+#: common/models.py:727
msgid "Parts are purchaseable by default"
msgstr "Gli articoli sono acquistabili per impostazione predefinita"
-#: common/models.py:725 part/models.py:941
+#: common/models.py:733 part/models.py:943
#: templates/js/translated/table_filters.js:446
msgid "Salable"
msgstr "Vendibile"
-#: common/models.py:726
+#: common/models.py:734
msgid "Parts are salable by default"
msgstr "Gli articoli sono acquistabili per impostazione predefinita"
-#: common/models.py:732 part/models.py:931
+#: common/models.py:740 part/models.py:933
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
#: templates/js/translated/table_filters.js:450
msgid "Trackable"
msgstr "Tracciabile"
-#: common/models.py:733
+#: common/models.py:741
msgid "Parts are trackable by default"
msgstr "Gli articoli sono tracciabili per impostazione predefinita"
-#: common/models.py:739 part/models.py:951
+#: common/models.py:747 part/models.py:953
#: part/templates/part/part_base.html:147
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr "Virtuale"
-#: common/models.py:740
+#: common/models.py:748
msgid "Parts are virtual by default"
msgstr "Gli articoli sono virtuali per impostazione predefinita"
-#: common/models.py:746
+#: common/models.py:754
msgid "Show Import in Views"
msgstr "Mostra l'importazione nelle viste"
-#: common/models.py:747
+#: common/models.py:755
msgid "Display the import wizard in some part views"
msgstr "Mostra la procedura guidata di importazione in alcune viste articoli"
-#: common/models.py:753
+#: common/models.py:761
msgid "Show Price in Forms"
msgstr "Mostra il prezzo nei moduli"
-#: common/models.py:754
+#: common/models.py:762
msgid "Display part price in some forms"
msgstr "Mostra il prezzo dell'articolo in alcuni moduli"
-#: common/models.py:765
+#: common/models.py:773
msgid "Show Price in BOM"
msgstr "Mostra il prezzo nella BOM"
-#: common/models.py:766
+#: common/models.py:774
msgid "Include pricing information in BOM tables"
msgstr "Includi le informazioni sui prezzi nelle tabelle BOM"
-#: common/models.py:772
+#: common/models.py:780
msgid "Show related parts"
msgstr "Mostra articoli correlati"
-#: common/models.py:773
+#: common/models.py:781
msgid "Display related parts for a part"
msgstr "Visualizza parti correlate per ogni articolo"
-#: common/models.py:779
+#: common/models.py:787
msgid "Create initial stock"
msgstr "Crea giacenza iniziale"
-#: common/models.py:780
+#: common/models.py:788
msgid "Create initial stock on part creation"
msgstr "Crea giacenza iniziale sulla creazione articolo"
-#: common/models.py:786
+#: common/models.py:794
msgid "Internal Prices"
msgstr "Prezzi interni"
-#: common/models.py:787
+#: common/models.py:795
msgid "Enable internal prices for parts"
msgstr "Abilita prezzi interni per gli articoli"
-#: common/models.py:793
+#: common/models.py:801
msgid "Internal Price as BOM-Price"
msgstr "Prezzo interno come BOM-Price"
-#: common/models.py:794
+#: common/models.py:802
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr "Utilizzare il prezzo interno (se impostato) nel calcolo del prezzo BOM"
-#: common/models.py:800
+#: common/models.py:808
msgid "Part Name Display Format"
msgstr "Formato di visualizzazione del nome articolo"
-#: common/models.py:801
+#: common/models.py:809
msgid "Format to display the part name"
msgstr "Formato per visualizzare il nome dell'articolo"
-#: common/models.py:808
+#: common/models.py:816
msgid "Enable Reports"
msgstr "Abilita Report di Stampa"
-#: common/models.py:809
+#: common/models.py:817
msgid "Enable generation of reports"
msgstr "Abilita generazione di report di stampa"
-#: common/models.py:815 templates/stats.html:25
+#: common/models.py:823 templates/stats.html:25
msgid "Debug Mode"
msgstr "Modalità Debug"
-#: common/models.py:816
+#: common/models.py:824
msgid "Generate reports in debug mode (HTML output)"
msgstr "Genera report in modalità debug (output HTML)"
-#: common/models.py:822
+#: common/models.py:830
msgid "Page Size"
msgstr "Dimensioni pagina"
-#: common/models.py:823
+#: common/models.py:831
msgid "Default page size for PDF reports"
msgstr "Dimensione predefinita della pagina per i report PDF"
-#: common/models.py:833
+#: common/models.py:841
msgid "Test Reports"
msgstr "Stampa di prova"
-#: common/models.py:834
+#: common/models.py:842
msgid "Enable generation of test reports"
msgstr "Abilita generazione di stampe di prova"
-#: common/models.py:840
+#: common/models.py:848
msgid "Stock Expiry"
msgstr "Scadenza giacenza"
-#: common/models.py:841
+#: common/models.py:849
msgid "Enable stock expiry functionality"
msgstr "Abilita funzionalità di scadenza della giacenza"
-#: common/models.py:847
+#: common/models.py:855
msgid "Sell Expired Stock"
msgstr "Vendi giacenza scaduta"
-#: common/models.py:848
+#: common/models.py:856
msgid "Allow sale of expired stock"
msgstr "Consenti la vendita di stock scaduti"
-#: common/models.py:854
+#: common/models.py:862
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:855
+#: common/models.py:863
msgid "Number of days stock items are considered stale before expiring"
msgstr "Numero di giorni in cui gli articoli in magazzino sono considerati obsoleti prima della scadenza"
-#: common/models.py:857
+#: common/models.py:865
msgid "days"
msgstr "giorni"
-#: common/models.py:862
+#: common/models.py:870
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:863
+#: common/models.py:871
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:869
+#: common/models.py:877
msgid "Stock Ownership Control"
msgstr "Controllo della proprietà della giacenza"
-#: common/models.py:870
+#: common/models.py:878
msgid "Enable ownership control over stock locations and items"
msgstr "Abilita il controllo della proprietà sulle posizioni e gli oggetti in giacenza"
-#: common/models.py:876
-msgid "Group by Part"
-msgstr "Raggruppa per articolo"
-
-#: common/models.py:877
-msgid "Group stock items by part reference in table views"
-msgstr "Raggruppa le voci di giacenza per riferimento articolo nelle viste della tabella"
-
-#: common/models.py:883
+#: common/models.py:884
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:884
+#: common/models.py:885
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:889
+#: common/models.py:890
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:890
+#: common/models.py:891
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:894
+#: common/models.py:895
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:895
+#: common/models.py:896
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:900
+#: common/models.py:901
msgid "Purchase Order Reference Prefix"
msgstr "Referenza ordine d'acquisto"
-#: common/models.py:901
+#: common/models.py:902
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:907
+#: common/models.py:908
msgid "Enable password forgot"
msgstr "Abilita password dimenticata"
-#: common/models.py:908
+#: common/models.py:909
msgid "Enable password forgot function on the login pages"
msgstr "Abilita la funzione password dimenticata nelle pagine di accesso"
-#: common/models.py:913
+#: common/models.py:914
msgid "Enable registration"
msgstr "Abilita registrazione"
-#: common/models.py:914
+#: common/models.py:915
msgid "Enable self-registration for users on the login pages"
msgstr "Abilita auto-registrazione per gli utenti nelle pagine di accesso"
-#: common/models.py:919
+#: common/models.py:920
msgid "Enable SSO"
msgstr "SSO abilitato"
-#: common/models.py:920
+#: common/models.py:921
msgid "Enable SSO on the login pages"
msgstr "Abilita SSO nelle pagine di accesso"
-#: common/models.py:925
+#: common/models.py:926
msgid "Email required"
msgstr "Email richiesta"
-#: common/models.py:926
+#: common/models.py:927
msgid "Require user to supply mail on signup"
msgstr "Richiedi all'utente di fornire una email al momento dell'iscrizione"
-#: common/models.py:931
+#: common/models.py:932
msgid "Auto-fill SSO users"
msgstr "Riempimento automatico degli utenti SSO"
-#: common/models.py:932
+#: common/models.py:933
msgid "Automatically fill out user-details from SSO account-data"
msgstr "Compila automaticamente i dettagli dell'utente dai dati dell'account SSO"
-#: common/models.py:937
+#: common/models.py:938
msgid "Mail twice"
msgstr ""
-#: common/models.py:938
+#: common/models.py:939
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:943
+#: common/models.py:944
msgid "Password twice"
msgstr ""
-#: common/models.py:944
+#: common/models.py:945
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:949
+#: common/models.py:950
msgid "Group on signup"
msgstr ""
-#: common/models.py:950
+#: common/models.py:951
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:955
+#: common/models.py:956
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:956
+#: common/models.py:957
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:961
+#: common/models.py:964
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:962
+#: common/models.py:965
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:968
+#: common/models.py:971
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:969
+#: common/models.py:972
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:975
+#: common/models.py:978
msgid "Enable app integration"
msgstr ""
-#: common/models.py:976
+#: common/models.py:979
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:982
+#: common/models.py:985
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:983
+#: common/models.py:986
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1029
+#: common/models.py:992
+msgid "Enable event integration"
+msgstr ""
+
+#: common/models.py:993
+msgid "Enable plugins to respond to internal events"
+msgstr ""
+
+#: common/models.py:1008 common/models.py:1216
+msgid "Settings key (must be unique - case insensitive"
+msgstr "Tasto impostazioni (deve essere univoco - maiuscole e minuscole"
+
+#: common/models.py:1039
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1030
+#: common/models.py:1040
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1035
+#: common/models.py:1045
msgid "Show subscribed categories"
msgstr "Mostra le categorie sottoscritte"
-#: common/models.py:1036
+#: common/models.py:1046
msgid "Show subscribed part categories on the homepage"
msgstr "Mostra le categorie dei componenti sottoscritti nella homepage"
-#: common/models.py:1041
+#: common/models.py:1051
msgid "Show latest parts"
msgstr "Mostra ultimi articoli"
-#: common/models.py:1042
+#: common/models.py:1052
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1047
+#: common/models.py:1057
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1048
+#: common/models.py:1058
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1054
+#: common/models.py:1064
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1055
+#: common/models.py:1065
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1070
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1061
+#: common/models.py:1071
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1066
+#: common/models.py:1076
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1067
+#: common/models.py:1077
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1072
+#: common/models.py:1082
msgid "Show low stock"
msgstr ""
-#: common/models.py:1073
+#: common/models.py:1083
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1078
+#: common/models.py:1088
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1079
+#: common/models.py:1089
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1084
+#: common/models.py:1094
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1085
+#: common/models.py:1095
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1090
+#: common/models.py:1100
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1091
+#: common/models.py:1101
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1096
+#: common/models.py:1106
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1097
+#: common/models.py:1107
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1102
+#: common/models.py:1112
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1103
+#: common/models.py:1113
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1108
+#: common/models.py:1118
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1109
+#: common/models.py:1119
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1114
+#: common/models.py:1124
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1115
+#: common/models.py:1125
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1120
+#: common/models.py:1130
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1121
+#: common/models.py:1131
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1136
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1127
+#: common/models.py:1137
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1142
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1143
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1149
msgid "Inline label display"
msgstr "Visualizzazione dell'etichetta in linea"
-#: common/models.py:1140
+#: common/models.py:1150
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr "Visualizza le etichette PDF nel browser, invece di scaricare come file"
-#: common/models.py:1146
+#: common/models.py:1156
msgid "Inline report display"
msgstr "Visualizzazione dell'etichetta in linea"
-#: common/models.py:1147
+#: common/models.py:1157
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr "Visualizza le etichette PDF nel browser, invece di scaricare come file"
-#: common/models.py:1153
+#: common/models.py:1163
msgid "Search Preview Results"
msgstr "Risultati Dell'Anteprima Di Ricerca"
-#: common/models.py:1154
+#: common/models.py:1164
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1170
msgid "Search Show Stock"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1171
msgid "Display stock levels in search preview window"
msgstr ""
-#: common/models.py:1167
+#: common/models.py:1177
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1178
msgid "Hide inactive parts in search preview window"
msgstr ""
-#: common/models.py:1174
+#: common/models.py:1184
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1175
+#: common/models.py:1185
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1181
+#: common/models.py:1191
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1182
+#: common/models.py:1192
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1188
+#: common/models.py:1198
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1199
msgid "InvenTree navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1254 company/forms.py:43
+#: common/models.py:1264 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1261 company/serializers.py:264
+#: common/models.py:1271 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:909 templates/js/translated/part.js:1860
+#: templates/js/translated/part.js:915 templates/js/translated/part.js:1867
msgid "Price"
msgstr "Prezzo"
-#: common/models.py:1262
+#: common/models.py:1272
msgid "Unit price at specified quantity"
msgstr ""
+#: common/models.py:1429 common/models.py:1568
+msgid "Endpoint"
+msgstr ""
+
+#: common/models.py:1430
+msgid "Endpoint at which this webhook is received"
+msgstr ""
+
+#: common/models.py:1439
+msgid "Name for this webhook"
+msgstr ""
+
+#: common/models.py:1444 part/models.py:948 plugin/models.py:46
+#: templates/js/translated/table_filters.js:34
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:295
+#: templates/js/translated/table_filters.js:417
+msgid "Active"
+msgstr "Attivo"
+
+#: common/models.py:1445
+msgid "Is this webhook active"
+msgstr ""
+
+#: common/models.py:1459
+msgid "Token"
+msgstr ""
+
+#: common/models.py:1460
+msgid "Token for access"
+msgstr ""
+
+#: common/models.py:1467
+msgid "Secret"
+msgstr ""
+
+#: common/models.py:1468
+msgid "Shared secret for HMAC"
+msgstr ""
+
+#: common/models.py:1535
+msgid "Message ID"
+msgstr ""
+
+#: common/models.py:1536
+msgid "Unique identifier for this message"
+msgstr ""
+
+#: common/models.py:1544
+msgid "Host"
+msgstr ""
+
+#: common/models.py:1545
+msgid "Host from which this message was received"
+msgstr ""
+
+#: common/models.py:1552
+msgid "Header"
+msgstr ""
+
+#: common/models.py:1553
+msgid "Header of this message"
+msgstr ""
+
+#: common/models.py:1559
+msgid "Body"
+msgstr ""
+
+#: common/models.py:1560
+msgid "Body of this message"
+msgstr ""
+
+#: common/models.py:1569
+msgid "Endpoint on which this message was received"
+msgstr ""
+
+#: common/models.py:1574
+msgid "Worked on"
+msgstr ""
+
+#: common/models.py:1575
+msgid "Was the work on this message finished?"
+msgstr ""
+
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
#: part/templates/part/bom_upload/upload_file.html:52
-#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
-#: part/views.py:764
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:213
+#: part/views.py:773
msgid "Upload File"
msgstr "Carica file"
#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
-#: part/views.py:765
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:214
+#: part/views.py:774
msgid "Match Fields"
msgstr "Abbina Campi"
@@ -2315,7 +2404,7 @@ msgstr "Punto di contatto"
msgid "Link to external company information"
msgstr "Collegamento alle informazioni aziendali esterne"
-#: company/models.py:139 part/models.py:838
+#: company/models.py:139 part/models.py:840
msgid "Image"
msgstr "Immagine"
@@ -2352,8 +2441,8 @@ msgstr "Valuta"
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:469
-#: stock/templates/stock/item_base.html:142
+#: company/models.py:320 company/models.py:535 stock/models.py:471
+#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:328
msgid "Base Part"
msgstr "Articolo di base"
@@ -2380,7 +2469,7 @@ msgstr "Seleziona Produttore"
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:818 templates/js/translated/order.js:1038
-#: templates/js/translated/part.js:245 templates/js/translated/part.js:889
+#: templates/js/translated/part.js:245 templates/js/translated/part.js:895
msgid "MPN"
msgstr "Codice articolo produttore (MPN)"
@@ -2409,8 +2498,8 @@ msgstr "Nome parametro"
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1960 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:709 templates/js/translated/stock.js:1296
+#: stock/models.py:1988 templates/js/translated/company.js:647
+#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1304
msgid "Value"
msgstr "Valore"
@@ -2418,10 +2507,10 @@ msgstr "Valore"
msgid "Parameter value"
msgstr "Valore del parametro"
-#: company/models.py:429 part/models.py:913 part/models.py:2450
+#: company/models.py:429 part/models.py:915 part/models.py:2457
#: part/templates/part/part_base.html:288
-#: templates/InvenTree/settings/settings.html:284
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:715
+#: templates/InvenTree/settings/settings.html:287
+#: templates/js/translated/company.js:653 templates/js/translated/part.js:721
msgid "Units"
msgstr "Unità"
@@ -2434,13 +2523,13 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr "L'articolo del costruttore collegato deve riferirsi alla stesso articolo"
#: company/models.py:545 company/templates/company/company_base.html:78
-#: company/templates/company/supplier_part.html:87 order/models.py:224
+#: company/templates/company/supplier_part.html:87 order/models.py:227
#: order/templates/order/order_base.html:112
-#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
-#: part/bom.py:247 stock/templates/stock/item_base.html:397
+#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237
+#: part/bom.py:265 stock/templates/stock/item_base.html:397
#: templates/js/translated/company.js:337
#: templates/js/translated/company.js:774 templates/js/translated/order.js:823
-#: templates/js/translated/part.js:215 templates/js/translated/part.js:857
+#: templates/js/translated/part.js:215 templates/js/translated/part.js:863
#: templates/js/translated/table_filters.js:393
msgid "Supplier"
msgstr "Fornitore"
@@ -2450,8 +2539,8 @@ msgid "Select supplier"
msgstr "Seleziona fornitore"
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:1025
-#: templates/js/translated/part.js:226 templates/js/translated/part.js:875
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1025
+#: templates/js/translated/part.js:226 templates/js/translated/part.js:881
msgid "SKU"
msgstr "SKU"
@@ -2472,22 +2561,22 @@ msgid "Supplier part description"
msgstr "Descrizione articolo fornitore"
#: company/models.py:576 company/templates/company/supplier_part.html:119
-#: part/models.py:2641 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2648 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr "Nota"
-#: company/models.py:580 part/models.py:1779
+#: company/models.py:580 part/models.py:1781
msgid "base cost"
msgstr "costo base"
-#: company/models.py:580 part/models.py:1779
+#: company/models.py:580 part/models.py:1781
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Onere minimo (ad esempio tassa di stoccaggio)"
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:493 stock/templates/stock/item_base.html:338
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1791
+#: stock/models.py:495 stock/templates/stock/item_base.html:338
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1799
msgid "Packaging"
msgstr "Confezionamento"
@@ -2495,7 +2584,7 @@ msgstr "Confezionamento"
msgid "Part packaging"
msgstr "Imballaggio del pezzo"
-#: company/models.py:584 part/models.py:1781
+#: company/models.py:584 part/models.py:1783
msgid "multiple"
msgstr "multiplo"
@@ -2554,12 +2643,12 @@ msgstr "Carica nuova immagine"
msgid "Download image from URL"
msgstr "Scarica immagine dall'URL"
-#: company/templates/company/company_base.html:83 order/models.py:547
-#: order/templates/order/sales_order_base.html:115 stock/models.py:512
-#: stock/models.py:513 stock/serializers.py:625
+#: company/templates/company/company_base.html:83 order/models.py:552
+#: order/templates/order/sales_order_base.html:115 stock/models.py:514
+#: stock/models.py:515 stock/serializers.py:626
#: stock/templates/stock/item_base.html:290
#: templates/js/translated/company.js:329 templates/js/translated/order.js:1240
-#: templates/js/translated/stock.js:2452
+#: templates/js/translated/stock.js:2610
#: templates/js/translated/table_filters.js:397
msgid "Customer"
msgstr "Cliente"
@@ -2590,7 +2679,7 @@ msgstr "Crea nuovo fornitore"
#: company/templates/company/detail.html:20
#: company/templates/company/manufacturer_part.html:118
-#: part/templates/part/detail.html:336
+#: part/templates/part/detail.html:353
msgid "New Supplier Part"
msgstr "Nuovo fornitore articolo"
@@ -2598,8 +2687,8 @@ msgstr "Nuovo fornitore articolo"
#: company/templates/company/detail.html:79
#: company/templates/company/manufacturer_part.html:127
#: company/templates/company/manufacturer_part.html:156
-#: part/templates/part/category.html:171 part/templates/part/detail.html:345
-#: part/templates/part/detail.html:374
+#: part/templates/part/category.html:171 part/templates/part/detail.html:362
+#: part/templates/part/detail.html:391
msgid "Options"
msgstr "Opzioni"
@@ -2627,7 +2716,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:364
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:381
msgid "New Manufacturer Part"
msgstr ""
@@ -2641,7 +2730,7 @@ msgstr "Giacenza Fornitore"
#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:68 part/templates/part/part_sidebar.html:33
+#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
@@ -2663,7 +2752,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:91 part/templates/part/part_sidebar.html:37
+#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:41
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
@@ -2691,13 +2780,13 @@ msgstr ""
#: company/templates/company/detail.html:384
#: company/templates/company/manufacturer_part.html:215
-#: part/templates/part/detail.html:418
+#: part/templates/part/detail.html:435
msgid "Delete Supplier Parts?"
msgstr "Elimina articoli fornitore?"
#: company/templates/company/detail.html:385
#: company/templates/company/manufacturer_part.html:216
-#: part/templates/part/detail.html:419
+#: part/templates/part/detail.html:436
msgid "All selected supplier parts will be deleted"
msgstr "Tutte gli articoli del fornitore selezionati saranno eliminati"
@@ -2714,7 +2803,7 @@ msgstr "Produttori"
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:34
#: company/templates/company/supplier_part.html:159
-#: part/templates/part/detail.html:71 part/templates/part/part_base.html:76
+#: part/templates/part/detail.html:88 part/templates/part/part_base.html:76
msgid "Order part"
msgstr "Articoli ordinati"
@@ -2735,34 +2824,34 @@ msgstr "Articolo interno"
#: company/templates/company/manufacturer_part.html:114
#: company/templates/company/supplier_part.html:15 company/views.py:49
-#: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163
+#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:163
#: templates/InvenTree/search.html:188 templates/navbar.html:45
msgid "Suppliers"
msgstr "Fornitori"
#: company/templates/company/manufacturer_part.html:129
-#: part/templates/part/detail.html:347
+#: part/templates/part/detail.html:364
msgid "Delete supplier parts"
msgstr "Elimina articolo fornitore"
#: company/templates/company/manufacturer_part.html:129
#: company/templates/company/manufacturer_part.html:158
#: company/templates/company/manufacturer_part.html:254
-#: part/templates/part/detail.html:347 part/templates/part/detail.html:376
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:393
#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31
-#: users/models.py:210
+#: users/models.py:212
msgid "Delete"
msgstr "Elimina"
#: company/templates/company/manufacturer_part.html:143
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:17
-#: part/templates/part/detail.html:170 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:187 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr "Parametri"
#: company/templates/company/manufacturer_part.html:147
-#: part/templates/part/detail.html:175
+#: part/templates/part/detail.html:192
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
@@ -2773,7 +2862,7 @@ msgid "Delete parameters"
msgstr "Elimina il parametro"
#: company/templates/company/manufacturer_part.html:191
-#: part/templates/part/detail.html:862
+#: part/templates/part/detail.html:892
msgid "Add Parameter"
msgstr "Aggiungi parametro"
@@ -2802,9 +2891,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:477
+#: company/templates/company/supplier_part.html:24 stock/models.py:479
#: stock/templates/stock/item_base.html:402
-#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1748
+#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1756
msgid "Supplier Part"
msgstr "Articolo Fornitore"
@@ -2830,7 +2919,7 @@ msgstr "Crea nuova allocazione magazzino"
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:167
-#: templates/js/translated/stock.js:360
+#: templates/js/translated/stock.js:368
msgid "New Stock Item"
msgstr "Nuovo Elemento in giacenza"
@@ -2840,7 +2929,7 @@ msgid "Supplier Part Orders"
msgstr "Ordini articoli fornitore"
#: company/templates/company/supplier_part.html:160
-#: part/templates/part/detail.html:72
+#: part/templates/part/detail.html:89
msgid "Order Part"
msgstr "Ordine Articolo"
@@ -2851,7 +2940,7 @@ msgstr "Informazioni Prezzi"
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1619
+#: part/templates/part/prices.html:271 part/views.py:1628
msgid "Add Price Break"
msgstr "Aggiungi riduzione prezzo"
@@ -2859,11 +2948,11 @@ msgstr "Aggiungi riduzione prezzo"
msgid "No price break information found"
msgstr "Nessuna informazione di riduzione di prezzo trovata"
-#: company/templates/company/supplier_part.html:224 part/views.py:1681
+#: company/templates/company/supplier_part.html:224 part/views.py:1690
msgid "Delete Price Break"
msgstr "Elimina riduzione di prezzo"
-#: company/templates/company/supplier_part.html:238 part/views.py:1667
+#: company/templates/company/supplier_part.html:238 part/views.py:1676
msgid "Edit Price Break"
msgstr ""
@@ -2881,10 +2970,10 @@ msgstr "Cancella riduzione di prezzo"
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:150
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/bom.js:328 templates/js/translated/part.js:489
-#: templates/js/translated/part.js:624 templates/js/translated/part.js:1118
-#: templates/js/translated/part.js:1279 templates/js/translated/stock.js:927
-#: templates/js/translated/stock.js:1580 templates/navbar.html:28
+#: templates/js/translated/bom.js:340 templates/js/translated/part.js:495
+#: templates/js/translated/part.js:630 templates/js/translated/part.js:1125
+#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:935
+#: templates/js/translated/stock.js:1588 templates/navbar.html:28
msgid "Stock"
msgstr "Magazzino"
@@ -2907,8 +2996,8 @@ msgstr "Prezzi"
#: stock/templates/stock/location.html:151
#: stock/templates/stock/location.html:163
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2351
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2509
+#: templates/stats.html:105 templates/stats.html:114 users/models.py:43
msgid "Stock Items"
msgstr "Articoli in magazzino"
@@ -2937,20 +3026,20 @@ msgstr "Aziende"
msgid "New Company"
msgstr "Nuova Azienda"
-#: company/views.py:129 part/views.py:584
+#: company/views.py:129 part/views.py:593
msgid "Download Image"
msgstr "Download Immagine"
-#: company/views.py:158 part/views.py:616
+#: company/views.py:158 part/views.py:625
msgid "Image size exceeds maximum allowable size for download"
msgstr "La dimensione dell'immagine supera la dimensione massima consentita per il download"
-#: company/views.py:165 part/views.py:623
+#: company/views.py:165 part/views.py:632
#, python-brace-format
msgid "Invalid response: {code}"
msgstr "Risposta non valida: {code}"
-#: company/views.py:174 part/views.py:632
+#: company/views.py:174 part/views.py:641
msgid "Supplied URL is not a valid image file"
msgstr "L'URL fornito non è un file immagine valido"
@@ -3036,282 +3125,282 @@ msgstr "Contrassegna ordine come completato"
msgid "Cancel order"
msgstr "Annulla l'ordine"
-#: order/models.py:122
+#: order/models.py:125
msgid "Order description"
msgstr "Descrizione ordine"
-#: order/models.py:124
+#: order/models.py:127
msgid "Link to external page"
msgstr ""
-#: order/models.py:132
+#: order/models.py:135
msgid "Created By"
msgstr "Creato Da"
-#: order/models.py:139
+#: order/models.py:142
msgid "User or group responsible for this order"
msgstr "Utente o gruppo responsabile di questo ordine"
-#: order/models.py:144
+#: order/models.py:147
msgid "Order notes"
msgstr "Note ordine"
-#: order/models.py:211 order/models.py:537
+#: order/models.py:214 order/models.py:542
msgid "Order reference"
msgstr "Riferimento ordine"
-#: order/models.py:216 order/models.py:552
+#: order/models.py:219 order/models.py:557
msgid "Purchase order status"
msgstr "Stato ordine d'acquisto"
-#: order/models.py:225
+#: order/models.py:228
msgid "Company from which the items are being ordered"
msgstr "Azienda da cui sono stati ordinati gli articoli"
-#: order/models.py:228 order/templates/order/order_base.html:118
+#: order/models.py:231 order/templates/order/order_base.html:118
#: templates/js/translated/order.js:832
msgid "Supplier Reference"
msgstr "Riferimento fornitore"
-#: order/models.py:228
+#: order/models.py:231
msgid "Supplier order reference code"
msgstr "Codice di riferimento ordine fornitore"
-#: order/models.py:235
+#: order/models.py:238
msgid "received by"
msgstr "ricevuto da"
-#: order/models.py:240
+#: order/models.py:243
msgid "Issue Date"
msgstr "Data di emissione"
-#: order/models.py:241
+#: order/models.py:244
msgid "Date order was issued"
msgstr "Data di emissione ordine"
-#: order/models.py:246
+#: order/models.py:249
msgid "Target Delivery Date"
msgstr "Data di consegna programmata"
-#: order/models.py:247
+#: order/models.py:250
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr "Data prevista per la consegna dell'ordine. L'ordine scadrà dopo questa data."
-#: order/models.py:253
+#: order/models.py:256
msgid "Date order was completed"
msgstr "Data ordine completato"
-#: order/models.py:282
+#: order/models.py:285
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:411
-msgid "Quantity must be an integer"
-msgstr ""
-
-#: order/models.py:415
+#: order/models.py:420
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:548
+#: order/models.py:553
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:554
+#: order/models.py:559
msgid "Customer Reference "
msgstr ""
-#: order/models.py:554
+#: order/models.py:559
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:559
+#: order/models.py:564
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:562 order/models.py:1028
+#: order/models.py:567 order/models.py:1048
#: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429
msgid "Shipment Date"
msgstr ""
-#: order/models.py:569
+#: order/models.py:574
msgid "shipped by"
msgstr ""
-#: order/models.py:635
+#: order/models.py:640
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:639
+#: order/models.py:644
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:642
+#: order/models.py:647
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:645
+#: order/models.py:650
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:797
+#: order/models.py:806
msgid "Item quantity"
msgstr ""
-#: order/models.py:803
+#: order/models.py:812
msgid "Line item reference"
msgstr ""
-#: order/models.py:805
+#: order/models.py:814
msgid "Line item notes"
msgstr ""
-#: order/models.py:835 order/models.py:926 order/models.py:1022
-#: templates/js/translated/order.js:1820
+#: order/models.py:842
+msgid "Supplier part must match supplier"
+msgstr ""
+
+#: order/models.py:855 order/models.py:946 order/models.py:1042
+#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2271
msgid "Order"
msgstr ""
-#: order/models.py:836 order/templates/order/order_base.html:9
+#: order/models.py:856 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:352
-#: templates/js/translated/order.js:801 templates/js/translated/part.js:832
-#: templates/js/translated/stock.js:1725 templates/js/translated/stock.js:2433
+#: templates/js/translated/order.js:801 templates/js/translated/part.js:838
+#: templates/js/translated/stock.js:1733 templates/js/translated/stock.js:2591
msgid "Purchase Order"
msgstr ""
-#: order/models.py:857
+#: order/models.py:877
msgid "Supplier part"
msgstr "Articolo Fornitore"
-#: order/models.py:864 order/templates/order/order_base.html:163
+#: order/models.py:884 order/templates/order/order_base.html:163
#: templates/js/translated/order.js:589 templates/js/translated/order.js:1118
-#: templates/js/translated/part.js:904 templates/js/translated/part.js:930
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:937
#: templates/js/translated/table_filters.js:317
msgid "Received"
msgstr ""
-#: order/models.py:865
+#: order/models.py:885
msgid "Number of items received"
msgstr ""
-#: order/models.py:872 part/templates/part/prices.html:176 stock/models.py:606
+#: order/models.py:892 part/templates/part/prices.html:176 stock/models.py:608
#: stock/serializers.py:170 stock/templates/stock/item_base.html:359
-#: templates/js/translated/stock.js:1779
+#: templates/js/translated/stock.js:1787
msgid "Purchase Price"
msgstr ""
-#: order/models.py:873
+#: order/models.py:893
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:881
+#: order/models.py:901
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:936 part/templates/part/part_pricing.html:112
+#: order/models.py:956 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:937
+#: order/models.py:957
msgid "Unit sale price"
msgstr ""
-#: order/models.py:942
+#: order/models.py:962
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1029
+#: order/models.py:1049
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1036
+#: order/models.py:1056
msgid "Checked By"
msgstr ""
-#: order/models.py:1037
+#: order/models.py:1057
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1045
+#: order/models.py:1065
msgid "Shipment number"
msgstr ""
-#: order/models.py:1052
+#: order/models.py:1072
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1059
+#: order/models.py:1079
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1060
+#: order/models.py:1080
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1070
+#: order/models.py:1090
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1073
+#: order/models.py:1093
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1149 order/models.py:1151
+#: order/models.py:1171 order/models.py:1173
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1155
+#: order/models.py:1177
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1157
+#: order/models.py:1179
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1160
+#: order/models.py:1182
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "La quantità di ripartizione non puo' superare la disponibilità della giacenza"
-#: order/models.py:1164
+#: order/models.py:1186
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:1170 order/serializers.py:734
+#: order/models.py:1192 order/serializers.py:740
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1173
+#: order/models.py:1195
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1174
+#: order/models.py:1196
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1182
+#: order/models.py:1204
msgid "Line"
msgstr ""
-#: order/models.py:1190 order/serializers.py:825 order/serializers.py:953
-#: templates/js/translated/model_renderers.js:251
+#: order/models.py:1212 order/serializers.py:831 order/serializers.py:959
+#: templates/js/translated/model_renderers.js:285
msgid "Shipment"
msgstr ""
-#: order/models.py:1191
+#: order/models.py:1213
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1203
+#: order/models.py:1225
msgid "Item"
msgstr ""
-#: order/models.py:1204
+#: order/models.py:1226
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1207
+#: order/models.py:1229
msgid "Enter stock allocation quantity"
msgstr "Inserisci la quantità assegnata alla giacenza"
@@ -3319,7 +3408,7 @@ msgstr "Inserisci la quantità assegnata alla giacenza"
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:211 order/serializers.py:790
+#: order/serializers.py:211 order/serializers.py:796
msgid "Line Item"
msgstr ""
@@ -3355,39 +3444,39 @@ msgstr "La destinazione deve essere specificata"
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:581
+#: order/serializers.py:587
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:649
+#: order/serializers.py:655
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:699 order/serializers.py:802
+#: order/serializers.py:705 order/serializers.py:808
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:721
+#: order/serializers.py:727
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:815
+#: order/serializers.py:821
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:839 order/serializers.py:964
+#: order/serializers.py:845 order/serializers.py:970
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:842 order/serializers.py:967
+#: order/serializers.py:848 order/serializers.py:973
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:894
+#: order/serializers.py:900
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:904
+#: order/serializers.py:910
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3441,6 +3530,7 @@ msgstr ""
#: order/templates/order/order_base.html:94
#: order/templates/order/sales_order_base.html:89
+#: templates/js/translated/stock.js:2327
msgid "Order Status"
msgstr "Stato dell'ordine"
@@ -3538,7 +3628,7 @@ msgstr "Duplica selezionati"
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/build.js:300 templates/js/translated/build.js:1311
#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488
-#: templates/js/translated/stock.js:593 templates/js/translated/stock.js:761
+#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769
msgid "Remove row"
msgstr "Elimina riga"
@@ -3729,7 +3819,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:48
-#: templates/js/translated/bom.js:720 templates/js/translated/build.js:1243
+#: templates/js/translated/bom.js:732 templates/js/translated/build.js:1243
msgid "Actions"
msgstr ""
@@ -3832,447 +3922,448 @@ msgstr "Specifica la posizione per lo stock iniziale"
msgid "This field is required"
msgstr ""
-#: part/bom.py:125 part/models.py:81 part/models.py:847
+#: part/bom.py:125 part/models.py:83 part/models.py:849
#: part/templates/part/category.html:108 part/templates/part/part_base.html:338
msgid "Default Location"
msgstr "Posizione Predefinita"
-#: part/bom.py:126 part/templates/part/part_base.html:185
+#: part/bom.py:126 templates/email/low_stock_notification.html:17
+msgid "Total Stock"
+msgstr "Giacenze Totali"
+
+#: part/bom.py:127 part/templates/part/part_base.html:185
msgid "Available Stock"
msgstr "Disponibilità in magazzino"
-#: part/forms.py:85
+#: part/bom.py:128 part/templates/part/part_base.html:203
+#: templates/js/translated/part.js:1301
+msgid "On Order"
+msgstr "Ordinato"
+
+#: part/forms.py:84
msgid "Select part category"
msgstr "Seleziona categoria articolo"
-#: part/forms.py:122
+#: part/forms.py:121
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:126
+#: part/forms.py:125
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:146
+#: part/forms.py:145
msgid "Input quantity for price calculation"
msgstr "Digita la quantità per il calcolo del prezzo"
-#: part/models.py:82
+#: part/models.py:84
msgid "Default location for parts in this category"
msgstr "Posizione predefinita per gli articoli di questa categoria"
-#: part/models.py:85
+#: part/models.py:87
msgid "Default keywords"
msgstr "Keywords predefinite"
-#: part/models.py:85
+#: part/models.py:87
msgid "Default keywords for parts in this category"
msgstr "Parole chiave predefinite per gli articoli in questa categoria"
-#: part/models.py:95 part/models.py:2526 part/templates/part/category.html:15
+#: part/models.py:97 part/models.py:2533 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Categoria Articoli"
-#: part/models.py:96 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/stats.html:84
+#: part/models.py:98 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/stats.html:96
#: users/models.py:40
msgid "Part Categories"
msgstr "Categorie Articolo"
-#: part/models.py:358 part/templates/part/cat_link.html:3
+#: part/models.py:360 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:17 part/templates/part/category.html:133
#: part/templates/part/category.html:153
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:37
-#: templates/js/translated/part.js:1656 templates/navbar.html:21
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+#: templates/js/translated/part.js:1663 templates/navbar.html:21
+#: templates/stats.html:92 templates/stats.html:101 users/models.py:41
msgid "Parts"
msgstr "Articoli"
-#: part/models.py:450
+#: part/models.py:452
msgid "Invalid choice for parent part"
msgstr "Scelta non valida per l'articolo principale"
-#: part/models.py:500 part/models.py:512
+#: part/models.py:502 part/models.py:514
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:642
+#: part/models.py:644
msgid "Next available serial numbers are"
msgstr "I successivi numeri di serie disponibili sono"
-#: part/models.py:646
+#: part/models.py:648
msgid "Next available serial number is"
msgstr "Il prossimo numero di serie disponibile è"
-#: part/models.py:651
+#: part/models.py:653
msgid "Most recent serial number is"
msgstr "Il numero di serie più recente è"
-#: part/models.py:746
+#: part/models.py:748
msgid "Duplicate IPN not allowed in part settings"
msgstr "Non è consentito duplicare IPN nelle impostazioni dell'articolo"
-#: part/models.py:771
+#: part/models.py:773
msgid "Part name"
msgstr "Nome articolo"
-#: part/models.py:778
+#: part/models.py:780
msgid "Is Template"
msgstr "È Template"
-#: part/models.py:779
+#: part/models.py:781
msgid "Is this part a template part?"
msgstr "Quest'articolo è un articolo di template?"
-#: part/models.py:789
+#: part/models.py:791
msgid "Is this part a variant of another part?"
msgstr "Questa parte è una variante di un altro articolo?"
-#: part/models.py:790
+#: part/models.py:792
msgid "Variant Of"
msgstr "Variante Di"
-#: part/models.py:796
+#: part/models.py:798
msgid "Part description"
msgstr "Descrizione articolo"
-#: part/models.py:801 part/templates/part/category.html:86
+#: part/models.py:803 part/templates/part/category.html:86
#: part/templates/part/part_base.html:302
msgid "Keywords"
msgstr "Parole Chiave"
-#: part/models.py:802
+#: part/models.py:804
msgid "Part keywords to improve visibility in search results"
msgstr "Parole chiave per migliorare la visibilità nei risultati di ricerca"
-#: part/models.py:809 part/models.py:2276 part/models.py:2525
+#: part/models.py:811 part/models.py:2283 part/models.py:2532
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:183
-#: templates/js/translated/part.js:1261
+#: templates/InvenTree/settings/settings.html:186
+#: templates/js/translated/part.js:1268
msgid "Category"
msgstr "Categoria"
-#: part/models.py:810
+#: part/models.py:812
msgid "Part category"
msgstr "Categoria articolo"
-#: part/models.py:815 part/templates/part/part_base.html:274
-#: templates/js/translated/part.js:612 templates/js/translated/part.js:1214
-#: templates/js/translated/stock.js:1552
+#: part/models.py:817 part/templates/part/part_base.html:274
+#: templates/js/translated/part.js:618 templates/js/translated/part.js:1221
+#: templates/js/translated/stock.js:1560
msgid "IPN"
msgstr "IPN - Numero di riferimento interno"
-#: part/models.py:816
+#: part/models.py:818
msgid "Internal Part Number"
msgstr "Numero Dell'articolo Interno"
-#: part/models.py:822
+#: part/models.py:824
msgid "Part revision or version number"
msgstr "Numero di revisione o di versione"
-#: part/models.py:823 part/templates/part/part_base.html:281
-#: report/models.py:200 templates/js/translated/part.js:616
+#: part/models.py:825 part/templates/part/part_base.html:281
+#: report/models.py:200 templates/js/translated/part.js:622
msgid "Revision"
msgstr "Revisione"
-#: part/models.py:845
+#: part/models.py:847
msgid "Where is this item normally stored?"
msgstr "Dove viene normalmente immagazzinato questo articolo?"
-#: part/models.py:892 part/templates/part/part_base.html:347
+#: part/models.py:894 part/templates/part/part_base.html:347
msgid "Default Supplier"
msgstr "Fornitore predefinito"
-#: part/models.py:893
+#: part/models.py:895
msgid "Default supplier part"
msgstr "Articolo fornitore predefinito"
-#: part/models.py:900
+#: part/models.py:902
msgid "Default Expiry"
msgstr "Scadenza Predefinita"
-#: part/models.py:901
+#: part/models.py:903
msgid "Expiry time (in days) for stock items of this part"
msgstr "Scadenza (in giorni) per gli articoli in giacenza di questo pezzo"
-#: part/models.py:906 part/templates/part/part_base.html:196
+#: part/models.py:908 part/templates/part/part_base.html:196
msgid "Minimum Stock"
msgstr "Scorta Minima"
-#: part/models.py:907
+#: part/models.py:909
msgid "Minimum allowed stock level"
msgstr "Livello minimo di giacenza consentito"
-#: part/models.py:914
+#: part/models.py:916
msgid "Stock keeping units for this part"
msgstr "Unità di conservazione delle scorte per quest'articolo"
-#: part/models.py:920
+#: part/models.py:922
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:926
+#: part/models.py:928
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:932
+#: part/models.py:934
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:937
+#: part/models.py:939
msgid "Can this part be purchased from external suppliers?"
msgstr "Quest'articolo può essere acquistato da fornitori esterni?"
-#: part/models.py:942
+#: part/models.py:944
msgid "Can this part be sold to customers?"
msgstr "Questo pezzo può essere venduto ai clienti?"
-#: part/models.py:946 plugin/models.py:46
-#: templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:96
-#: templates/js/translated/table_filters.js:295
-#: templates/js/translated/table_filters.js:417
-msgid "Active"
-msgstr "Attivo"
-
-#: part/models.py:947
+#: part/models.py:949
msgid "Is this part active?"
msgstr "Quest'articolo è attivo?"
-#: part/models.py:952
+#: part/models.py:954
msgid "Is this a virtual part, such as a software product or license?"
msgstr "È una parte virtuale, come un prodotto software o una licenza?"
-#: part/models.py:957
+#: part/models.py:959
msgid "Part notes - supports Markdown formatting"
msgstr "Note dell'articolo - supporta la formattazione Markdown"
-#: part/models.py:960
+#: part/models.py:962
msgid "BOM checksum"
msgstr "BOM checksum"
-#: part/models.py:960
+#: part/models.py:962
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:963
+#: part/models.py:965
msgid "BOM checked by"
msgstr ""
-#: part/models.py:965
+#: part/models.py:967
msgid "BOM checked date"
msgstr ""
-#: part/models.py:969
+#: part/models.py:971
msgid "Creation User"
msgstr ""
-#: part/models.py:1781
+#: part/models.py:1783
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2326
+#: part/models.py:2333
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2343
+#: part/models.py:2350
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2363 templates/js/translated/part.js:1707
-#: templates/js/translated/stock.js:1276
+#: part/models.py:2370 templates/js/translated/part.js:1714
+#: templates/js/translated/stock.js:1284
msgid "Test Name"
msgstr ""
-#: part/models.py:2364
+#: part/models.py:2371
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2376
msgid "Test Description"
msgstr "Descrizione Di Prova"
-#: part/models.py:2370
+#: part/models.py:2377
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2375 templates/js/translated/part.js:1716
+#: part/models.py:2382 templates/js/translated/part.js:1723
#: templates/js/translated/table_filters.js:281
msgid "Required"
msgstr ""
-#: part/models.py:2376
+#: part/models.py:2383
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2381 templates/js/translated/part.js:1724
+#: part/models.py:2388 templates/js/translated/part.js:1731
msgid "Requires Value"
msgstr ""
-#: part/models.py:2382
+#: part/models.py:2389
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2387 templates/js/translated/part.js:1731
+#: part/models.py:2394 templates/js/translated/part.js:1738
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2388
+#: part/models.py:2395
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2399
+#: part/models.py:2406
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2435
+#: part/models.py:2442
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2443
+#: part/models.py:2450
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2450
+#: part/models.py:2457
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2480
+#: part/models.py:2487
msgid "Parent Part"
msgstr ""
-#: part/models.py:2482 part/models.py:2531 part/models.py:2532
-#: templates/InvenTree/settings/settings.html:178
+#: part/models.py:2489 part/models.py:2538 part/models.py:2539
+#: templates/InvenTree/settings/settings.html:181
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2484
+#: part/models.py:2491
msgid "Data"
msgstr ""
-#: part/models.py:2484
+#: part/models.py:2491
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2536 templates/InvenTree/settings/settings.html:187
+#: part/models.py:2543 templates/InvenTree/settings/settings.html:190
msgid "Default Value"
msgstr ""
-#: part/models.py:2537
+#: part/models.py:2544
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2614
+#: part/models.py:2621
msgid "Select parent part"
msgstr ""
-#: part/models.py:2622
+#: part/models.py:2629
msgid "Sub part"
msgstr ""
-#: part/models.py:2623
+#: part/models.py:2630
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2629
+#: part/models.py:2636
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2631 templates/js/translated/bom.js:566
-#: templates/js/translated/bom.js:640
+#: part/models.py:2638 templates/js/translated/bom.js:578
+#: templates/js/translated/bom.js:652
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2638
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2634
+#: part/models.py:2641
msgid "Overage"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2642
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2638
+#: part/models.py:2645
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2641
+#: part/models.py:2648
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2643
+#: part/models.py:2650
msgid "Checksum"
msgstr ""
-#: part/models.py:2643
+#: part/models.py:2650
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2647 templates/js/translated/bom.js:657
+#: part/models.py:2654 templates/js/translated/bom.js:669
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2648
+#: part/models.py:2655
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2653 templates/js/translated/bom.js:649
+#: part/models.py:2660 templates/js/translated/bom.js:661
msgid "Allow Variants"
msgstr "Consenti Le Varianti"
-#: part/models.py:2654
+#: part/models.py:2661
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2739 stock/models.py:355
+#: part/models.py:2746 stock/models.py:357
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2748 part/models.py:2750
+#: part/models.py:2755 part/models.py:2757
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2879
+#: part/models.py:2886
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2908
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2920
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2928
msgid "Substitute part"
msgstr ""
-#: part/models.py:2932
+#: part/models.py:2939
msgid "Part 1"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2943
msgid "Part 2"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2943
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2968
+#: part/models.py:2975
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4327,7 +4418,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:253
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:270
msgid "BOM actions"
msgstr ""
@@ -4499,7 +4590,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:348
msgid "Duplicate Part"
msgstr ""
@@ -4533,145 +4624,149 @@ msgid "Showing stock for all variants of %(full_name)s"
msgstr ""
#: part/templates/part/detail.html:43
+msgid "Part Stock Allocations"
+msgstr ""
+
+#: part/templates/part/detail.html:60
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:48
+#: part/templates/part/detail.html:65
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:105
+#: part/templates/part/detail.html:122
msgid "Sales Order Allocations"
msgstr "Assegnazione Ordine Di Vendita"
-#: part/templates/part/detail.html:142
+#: part/templates/part/detail.html:159
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:146
+#: part/templates/part/detail.html:163
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:147
+#: part/templates/part/detail.html:164
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:174
+#: part/templates/part/detail.html:191
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:45
+#: part/templates/part/detail.html:228 part/templates/part/part_sidebar.html:49
msgid "Related Parts"
msgstr "Articoli correlati"
-#: part/templates/part/detail.html:215 part/templates/part/detail.html:216
+#: part/templates/part/detail.html:232 part/templates/part/detail.html:233
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:236 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:253 part/templates/part/part_sidebar.html:17
msgid "Bill of Materials"
msgstr "Distinta base"
-#: part/templates/part/detail.html:241
+#: part/templates/part/detail.html:258
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:245 templates/js/translated/bom.js:70
+#: part/templates/part/detail.html:262 templates/js/translated/bom.js:70
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:247
+#: part/templates/part/detail.html:264
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:257
+#: part/templates/part/detail.html:274
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:259 templates/js/translated/part.js:272
+#: part/templates/part/detail.html:276 templates/js/translated/part.js:272
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:278
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:266
+#: part/templates/part/detail.html:283
msgid "New BOM Item"
msgstr ""
-#: part/templates/part/detail.html:267
+#: part/templates/part/detail.html:284
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:280
+#: part/templates/part/detail.html:297
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:297
+#: part/templates/part/detail.html:314
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:322
+#: part/templates/part/detail.html:339
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:332
+#: part/templates/part/detail.html:349
msgid "Part Suppliers"
msgstr "Fornitori articoli"
-#: part/templates/part/detail.html:360
+#: part/templates/part/detail.html:377
msgid "Part Manufacturers"
msgstr "Componenti Produttori"
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:393
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:558
+#: part/templates/part/detail.html:575
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:559
+#: part/templates/part/detail.html:576
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:608
+#: part/templates/part/detail.html:625
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:652
+#: part/templates/part/detail.html:682
msgid "Related Part"
msgstr "Articoli correlati"
-#: part/templates/part/detail.html:660
+#: part/templates/part/detail.html:690
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:755
+#: part/templates/part/detail.html:785
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:812
+#: part/templates/part/detail.html:842
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:925
+#: part/templates/part/detail.html:955
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:937
+#: part/templates/part/detail.html:967
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:949
+#: part/templates/part/detail.html:979
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1038
+#: part/templates/part/detail.html:1068
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4786,7 +4881,7 @@ msgstr ""
#: templates/js/translated/company.js:508
#: templates/js/translated/company.js:765
#: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:527 templates/js/translated/part.js:604
+#: templates/js/translated/part.js:533 templates/js/translated/part.js:610
msgid "Inactive"
msgstr "Inattivo"
@@ -4805,10 +4900,6 @@ msgstr ""
msgid "In Stock"
msgstr "In magazzino"
-#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1294
-msgid "On Order"
-msgstr "Ordinato"
-
#: part/templates/part/part_base.html:210 templates/InvenTree/index.html:178
msgid "Required for Build Orders"
msgstr ""
@@ -4821,12 +4912,12 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:678
+#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:690
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1125
-#: templates/js/translated/part.js:1298
+#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1132
+#: templates/js/translated/part.js:1305
msgid "Building"
msgstr ""
@@ -4878,7 +4969,7 @@ msgid "Total Cost"
msgstr "Costo Totale"
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:632
+#: templates/js/translated/bom.js:644
msgid "No supplier pricing available"
msgstr ""
@@ -4920,7 +5011,12 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/templates/part/part_sidebar.html:41
+#: part/templates/part/part_sidebar.html:31
+#: stock/templates/stock/stock_sidebar.html:8
+msgid "Allocations"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:45
msgid "Test Templates"
msgstr ""
@@ -4993,7 +5089,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:626
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:638
msgid "Supplier Cost"
msgstr ""
@@ -5015,7 +5111,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1690
+#: part/templates/part/prices.html:215 part/views.py:1699
msgid "Add Internal Price Break"
msgstr ""
@@ -5035,9 +5131,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr "Imposta categoria per i seguenti articoli"
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:588
-#: templates/js/translated/part.js:491 templates/js/translated/part.js:1115
-#: templates/js/translated/part.js:1302
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:600
+#: templates/js/translated/part.js:497 templates/js/translated/part.js:1122
+#: templates/js/translated/part.js:1309
msgid "No Stock"
msgstr "Nessuna giacenza"
@@ -5054,116 +5150,116 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:116
+#: part/templatetags/inventree_extras.py:125
msgid "Unknown database"
msgstr "Database sconosciuto"
-#: part/views.py:92
+#: part/views.py:93
msgid "Set Part Category"
msgstr "Imposta categoria articolo"
-#: part/views.py:142
+#: part/views.py:143
#, python-brace-format
msgid "Set category for {n} parts"
msgstr "Imposta categoria per {n} articoli"
-#: part/views.py:214
+#: part/views.py:215
msgid "Match References"
msgstr ""
-#: part/views.py:502
+#: part/views.py:511
msgid "None"
msgstr ""
-#: part/views.py:561
+#: part/views.py:570
msgid "Part QR Code"
msgstr ""
-#: part/views.py:663
+#: part/views.py:672
msgid "Select Part Image"
msgstr ""
-#: part/views.py:689
+#: part/views.py:698
msgid "Updated part image"
msgstr ""
-#: part/views.py:692
+#: part/views.py:701
msgid "Part image not found"
msgstr ""
-#: part/views.py:766
+#: part/views.py:775
msgid "Match Parts"
msgstr ""
-#: part/views.py:1101
+#: part/views.py:1110
msgid "Export Bill of Materials"
msgstr "Esporta Distinta base"
-#: part/views.py:1150
+#: part/views.py:1159
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1157
+#: part/views.py:1166
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1166
+#: part/views.py:1175
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1315
+#: part/views.py:1324
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1325
+#: part/views.py:1334
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1332
+#: part/views.py:1341
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1391 templates/js/translated/part.js:315
+#: part/views.py:1400 templates/js/translated/part.js:315
msgid "Edit Part Category"
msgstr "Modifica Categoria Articoli"
-#: part/views.py:1429
+#: part/views.py:1438
msgid "Delete Part Category"
msgstr "Elimina categoria"
-#: part/views.py:1435
+#: part/views.py:1444
msgid "Part category was deleted"
msgstr "La Categoria articoli è stata eliminata"
-#: part/views.py:1444
+#: part/views.py:1453
msgid "Create Category Parameter Template"
msgstr "Crea Template Parametro Categoria"
-#: part/views.py:1545
+#: part/views.py:1554
msgid "Edit Category Parameter Template"
msgstr "Modifica Modello Parametro Categoria"
-#: part/views.py:1601
+#: part/views.py:1610
msgid "Delete Category Parameter Template"
msgstr "Elimina Modello Parametro Categoria"
-#: part/views.py:1623
+#: part/views.py:1632
msgid "Added new price break"
msgstr ""
-#: part/views.py:1699
+#: part/views.py:1708
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1707
+#: part/views.py:1716
msgid "Delete Internal Price Break"
msgstr ""
-#: plugin/integration.py:124
+#: plugin/integration.py:138
msgid "No author found"
msgstr ""
-#: plugin/integration.py:136
+#: plugin/integration.py:152
msgid "No date found"
msgstr ""
@@ -5191,7 +5287,7 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:195
+#: plugin/models.py:199
msgid "Plugin"
msgstr ""
@@ -5357,12 +5453,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:517 stock/templates/stock/item_base.html:156
+#: stock/models.py:519 stock/templates/stock/item_base.html:156
#: templates/js/translated/build.js:293 templates/js/translated/build.js:697
#: templates/js/translated/build.js:1073
#: templates/js/translated/model_renderers.js:95
#: templates/js/translated/order.js:99 templates/js/translated/order.js:1945
-#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:415
+#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:423
msgid "Serial Number"
msgstr ""
@@ -5371,19 +5467,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:1948
+#: stock/models.py:1976
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:1954
+#: stock/models.py:1982
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:49
+#: templates/InvenTree/settings/plugin.html:50
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2367
+#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2525
msgid "Date"
msgstr "Data"
@@ -5396,23 +5492,27 @@ msgid "Fail"
msgstr "Fallito"
#: report/templates/report/inventree_test_report_base.html:123
-#: stock/templates/stock/stock_sidebar.html:12
+#: stock/templates/stock/stock_sidebar.html:16
msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:578 templates/js/translated/stock.js:748
-#: templates/js/translated/stock.js:2627
+#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756
+#: templates/js/translated/stock.js:2785
msgid "Serial"
msgstr "Seriale"
-#: stock/api.py:478
+#: stock/api.py:476
msgid "Quantity is required"
msgstr "La quantità è richiesta"
-#: stock/forms.py:77 stock/forms.py:251 stock/models.py:574
+#: stock/api.py:483
+msgid "Valid part must be supplied"
+msgstr ""
+
+#: stock/forms.py:77 stock/forms.py:251 stock/models.py:576
#: stock/templates/stock/item_base.html:193
-#: templates/js/translated/stock.js:1701
+#: templates/js/translated/stock.js:1709
msgid "Expiry Date"
msgstr "Data di Scadenza"
@@ -5460,228 +5560,228 @@ msgstr "Conferma la disinstallazione"
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:60 stock/models.py:611
+#: stock/models.py:62 stock/models.py:613
#: stock/templates/stock/item_base.html:416
msgid "Owner"
msgstr ""
-#: stock/models.py:61 stock/models.py:612
+#: stock/models.py:63 stock/models.py:614
msgid "Select Owner"
msgstr "Seleziona Owner"
-#: stock/models.py:336
+#: stock/models.py:338
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:372
+#: stock/models.py:374
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:382 stock/models.py:391
+#: stock/models.py:384 stock/models.py:393
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:383
+#: stock/models.py:385
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:405
+#: stock/models.py:407
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:413
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:418
+#: stock/models.py:420
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:461
+#: stock/models.py:463
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:470
+#: stock/models.py:472
msgid "Base part"
msgstr "Articolo base"
-#: stock/models.py:478
+#: stock/models.py:480
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:484 stock/templates/stock/location.html:16
+#: stock/models.py:486 stock/templates/stock/location.html:16
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr "Ubicazione magazzino"
-#: stock/models.py:487
+#: stock/models.py:489
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:494
+#: stock/models.py:496
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:500 stock/templates/stock/item_base.html:298
+#: stock/models.py:502 stock/templates/stock/item_base.html:298
msgid "Installed In"
msgstr "Installato In"
-#: stock/models.py:503
+#: stock/models.py:505
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:521
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:535
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:537
+#: stock/models.py:539
msgid "Stock Quantity"
msgstr "Quantità disponibile"
-#: stock/models.py:546
+#: stock/models.py:548
msgid "Source Build"
msgstr ""
-#: stock/models.py:548
+#: stock/models.py:550
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:559
+#: stock/models.py:561
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:562
+#: stock/models.py:564
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:568
+#: stock/models.py:570
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:575
+#: stock/models.py:577
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:588
+#: stock/models.py:590
msgid "Delete on deplete"
msgstr "Elimina al esaurimento"
-#: stock/models.py:588
+#: stock/models.py:590
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:598 stock/templates/stock/item.html:111
+#: stock/models.py:600 stock/templates/stock/item.html:128
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:607
+#: stock/models.py:609
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1068
+#: stock/models.py:1096
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1074
+#: stock/models.py:1102
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1080
+#: stock/models.py:1108
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1083
+#: stock/models.py:1111
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1086
+#: stock/models.py:1114
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1093
+#: stock/models.py:1121
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1164
+#: stock/models.py:1192
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1167
+#: stock/models.py:1195
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1170
+#: stock/models.py:1198
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1173
+#: stock/models.py:1201
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1176
+#: stock/models.py:1204
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1179
+#: stock/models.py:1207
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1186 stock/serializers.py:774
+#: stock/models.py:1214 stock/serializers.py:775
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1190
+#: stock/models.py:1218
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1194
+#: stock/models.py:1222
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1198
+#: stock/models.py:1226
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1369
+#: stock/models.py:1397
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1868
+#: stock/models.py:1896
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1925
+#: stock/models.py:1953
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1931
+#: stock/models.py:1959
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1949
+#: stock/models.py:1977
msgid "Test name"
msgstr ""
-#: stock/models.py:1955 templates/js/translated/table_filters.js:271
+#: stock/models.py:1983 templates/js/translated/table_filters.js:271
msgid "Test result"
msgstr ""
-#: stock/models.py:1961
+#: stock/models.py:1989
msgid "Test output value"
msgstr ""
-#: stock/models.py:1968
+#: stock/models.py:1996
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1974
+#: stock/models.py:2002
msgid "Test notes"
msgstr ""
@@ -5706,7 +5806,7 @@ msgstr ""
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:326 stock/serializers.py:731 stock/serializers.py:972
+#: stock/serializers.py:326 stock/serializers.py:732 stock/serializers.py:973
msgid "Destination stock location"
msgstr "Posizione magazzino di destinazione"
@@ -5718,63 +5818,63 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:588
+#: stock/serializers.py:589
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:592
+#: stock/serializers.py:593
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:597
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:626
+#: stock/serializers.py:627
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:632
+#: stock/serializers.py:633
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:640
+#: stock/serializers.py:641
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:650 stock/serializers.py:880
+#: stock/serializers.py:651 stock/serializers.py:881
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:738
+#: stock/serializers.py:739
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:743
+#: stock/serializers.py:744
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:744
+#: stock/serializers.py:745
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:749
+#: stock/serializers.py:750
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:750
+#: stock/serializers.py:751
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:760
+#: stock/serializers.py:761
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:842
+#: stock/serializers.py:843
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:870
+#: stock/serializers.py:871
msgid "Stock transaction notes"
msgstr ""
@@ -5787,47 +5887,51 @@ msgid "New Entry"
msgstr ""
#: stock/templates/stock/item.html:48
-msgid "Child Stock Items"
-msgstr ""
-
-#: stock/templates/stock/item.html:55
-msgid "This stock item does not have any child items"
+msgid "Stock Item Allocations"
msgstr ""
#: stock/templates/stock/item.html:64
-#: stock/templates/stock/stock_sidebar.html:8
-msgid "Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:57
-msgid "Test Report"
+msgid "Child Stock Items"
msgstr ""
#: stock/templates/stock/item.html:72
+msgid "This stock item does not have any child items"
+msgstr ""
+
+#: stock/templates/stock/item.html:81
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:57
+msgid "Test Report"
+msgstr ""
+
+#: stock/templates/stock/item.html:89
msgid "Delete Test Data"
msgstr ""
-#: stock/templates/stock/item.html:76
+#: stock/templates/stock/item.html:93
msgid "Add Test Data"
msgstr ""
-#: stock/templates/stock/item.html:133
+#: stock/templates/stock/item.html:150
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:137 stock/views.py:482
+#: stock/templates/stock/item.html:154 stock/views.py:482
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304
+#: stock/templates/stock/item.html:309 stock/templates/stock/item.html:334
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:324
+#: stock/templates/stock/item.html:354
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:338
+#: stock/templates/stock/item.html:368
msgid "Delete Test Result"
msgstr ""
@@ -5952,7 +6056,7 @@ msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:206
-#: templates/js/translated/stock.js:1714
+#: templates/js/translated/stock.js:1722
msgid "Last Updated"
msgstr "Ultimo aggiornamento"
@@ -6111,7 +6215,7 @@ msgid "Sublocations"
msgstr "Sottoallocazioni"
#: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164
-#: templates/stats.html:97 users/models.py:42
+#: templates/stats.html:109 users/models.py:42
msgid "Stock Locations"
msgstr "Posizioni magazzino"
@@ -6135,7 +6239,7 @@ msgstr ""
msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/stock_sidebar.html:16
+#: stock/templates/stock/stock_sidebar.html:20
msgid "Child Items"
msgstr ""
@@ -6164,7 +6268,7 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:162
+#: stock/views.py:162 templates/js/translated/stock.js:139
msgid "Edit Stock Location"
msgstr "Modifica Posizione Giacenza"
@@ -6204,7 +6308,7 @@ msgstr ""
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:727 templates/js/translated/stock.js:1066
+#: stock/views.py:727 templates/js/translated/stock.js:1074
msgid "Confirm stock adjustment"
msgstr ""
@@ -6212,7 +6316,7 @@ msgstr ""
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:324
+#: stock/views.py:760 templates/js/translated/stock.js:332
msgid "Edit Stock Item"
msgstr ""
@@ -6224,7 +6328,7 @@ msgstr "Crea una nuova Posizione di Giacenza"
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1153 templates/js/translated/stock.js:304
+#: stock/views.py:1153 templates/js/translated/stock.js:312
msgid "Duplicate Stock Item"
msgstr ""
@@ -6268,6 +6372,18 @@ msgstr ""
msgid "The requested page does not exist"
msgstr ""
+#: templates/500.html:5 templates/500.html:11
+msgid "Internal Server Error"
+msgstr ""
+
+#: templates/500.html:14
+msgid "The InvenTree server raised an internal error"
+msgstr ""
+
+#: templates/500.html:15
+msgid "Refer to the error log in the admin interface for further details"
+msgstr ""
+
#: templates/503.html:10 templates/503.html:35
msgid "Site is in Maintenance"
msgstr ""
@@ -6390,7 +6506,7 @@ msgid "Signup"
msgstr "Registrati"
#: templates/InvenTree/settings/mixins/settings.html:5
-#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:118
+#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113
msgid "Settings"
msgstr ""
@@ -6431,43 +6547,43 @@ msgstr ""
msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage."
msgstr ""
-#: templates/InvenTree/settings/plugin.html:32
+#: templates/InvenTree/settings/plugin.html:33
msgid "Plugins"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:37
+#: templates/InvenTree/settings/plugin.html:38
#: templates/js/translated/plugin.js:15
msgid "Install Plugin"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:46 templates/navbar.html:111
+#: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111
#: users/models.py:39
msgid "Admin"
msgstr "Admin"
-#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin.html:49
#: templates/InvenTree/settings/plugin_settings.html:28
msgid "Author"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:50
+#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin_settings.html:43
msgid "Version"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:91
+#: templates/InvenTree/settings/plugin.html:92
msgid "Inactive plugins"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:114
+#: templates/InvenTree/settings/plugin.html:115
msgid "Plugin Error Stack"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:123
+#: templates/InvenTree/settings/plugin.html:124
msgid "Stage"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:125
+#: templates/InvenTree/settings/plugin.html:126
msgid "Message"
msgstr ""
@@ -6555,37 +6671,37 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:75
+#: templates/InvenTree/settings/settings.html:78
msgid "Edit Plugin Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:77
+#: templates/InvenTree/settings/settings.html:80
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:79
+#: templates/InvenTree/settings/settings.html:82
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:168
+#: templates/InvenTree/settings/settings.html:171
msgid "No category parameter templates found"
msgstr "Nessun parametro di categoria trovato"
-#: templates/InvenTree/settings/settings.html:190
-#: templates/InvenTree/settings/settings.html:289
+#: templates/InvenTree/settings/settings.html:193
+#: templates/InvenTree/settings/settings.html:292
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:191
-#: templates/InvenTree/settings/settings.html:290
+#: templates/InvenTree/settings/settings.html:194
+#: templates/InvenTree/settings/settings.html:293
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:269
+#: templates/InvenTree/settings/settings.html:272
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:273
+#: templates/InvenTree/settings/settings.html:276
msgid "ID"
msgstr ""
@@ -6763,124 +6879,105 @@ msgstr ""
msgid "Remove multifactor"
msgstr ""
-#: templates/InvenTree/settings/user.html:219
+#: templates/InvenTree/settings/user.html:220
+msgid "Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:226
+msgid "Log out active sessions (except this one)"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:227
+msgid "Log Out Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:236
+msgid "unknown on unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:237
+msgid "unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:241
+msgid "IP Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:242
+msgid "Device"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:243
+msgid "Last Activity"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:252
+#, python-format
+msgid "%(time)s ago (this session)"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:254
+#, python-format
+msgid "%(time)s ago"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:266
+msgid "Do you really want to remove the selected email address?"
+msgstr ""
+
#: templates/InvenTree/settings/user_display.html:25
msgid "Theme Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:227
#: templates/InvenTree/settings/user_display.html:35
msgid "Select theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:237
#: templates/InvenTree/settings/user_display.html:46
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:246
#: templates/InvenTree/settings/user_display.html:54
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:254
#: templates/InvenTree/settings/user_display.html:63
msgid "Select language"
msgstr ""
-#: templates/InvenTree/settings/user.html:270
#: templates/InvenTree/settings/user_display.html:79
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:272
#: templates/InvenTree/settings/user_display.html:81
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:279
#: templates/InvenTree/settings/user_display.html:88
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:281
#: templates/InvenTree/settings/user_display.html:91
msgid "Some languages are not complete"
msgstr ""
-#: templates/InvenTree/settings/user.html:283
#: templates/InvenTree/settings/user_display.html:93
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user.html:285
+#: templates/InvenTree/settings/user_display.html:95
+msgid "and hidden."
+msgstr ""
+
#: templates/InvenTree/settings/user_display.html:95
msgid "Show them too"
msgstr ""
-#: templates/InvenTree/settings/user.html:292
#: templates/InvenTree/settings/user_display.html:101
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user.html:293
-#, python-format
-msgid "Native language translation of the\n"
-" InvenTree web application is community contributed via crowdin. Contributions are\n"
-" welcomed and encouraged."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:302
-msgid "Active Sessions"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:308
-msgid "Log out active sessions (except this one)"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:309
-msgid "Log Out Active Sessions"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:318
-msgid "unknown on unknown"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:319
-msgid "unknown"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:323
-msgid "IP Address"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:324
-msgid "Device"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:325
-msgid "Last Activity"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:334
-#, python-format
-msgid "%(time)s ago (this session)"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:336
-#, python-format
-msgid "%(time)s ago"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:348
-msgid "Do you really want to remove the selected email address?"
-msgstr ""
-
-#: templates/InvenTree/settings/user_display.html:95
-msgid "and hidden."
-msgstr ""
-
#: templates/InvenTree/settings/user_display.html:102
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
@@ -6899,9 +6996,9 @@ msgid "InvenTree Version Information"
msgstr "Informazioni Versione InvenTree"
#: templates/about.html:11 templates/about.html:105
-#: templates/js/translated/bom.js:395 templates/js/translated/modals.js:53
-#: templates/js/translated/modals.js:573 templates/js/translated/modals.js:667
-#: templates/js/translated/modals.js:970 templates/modals.html:15
+#: templates/js/translated/bom.js:407 templates/js/translated/modals.js:53
+#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
+#: templates/js/translated/modals.js:983 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr "Chiudi"
@@ -7179,13 +7276,13 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1103
+#: templates/js/translated/bom.js:1117
msgid "Required Quantity"
msgstr "Quantità richiesta"
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:579 templates/js/translated/build.js:1189
+#: templates/js/translated/bom.js:591 templates/js/translated/build.js:1189
#: templates/js/translated/build.js:1810
#: templates/js/translated/table_filters.js:178
msgid "Available"
@@ -7209,10 +7306,6 @@ msgstr ""
msgid "Click on the following link to view this part"
msgstr ""
-#: templates/email/low_stock_notification.html:17
-msgid "Total Stock"
-msgstr "Giacenze Totali"
-
#: templates/email/low_stock_notification.html:19
msgid "Minimum Quantity"
msgstr "Quantità minima"
@@ -7233,11 +7326,11 @@ msgstr "Il server remoto deve essere accessibile"
msgid "Remote image must not exceed maximum allowable file size"
msgstr "L'immagine remota non deve superare la dimensione massima consentita del file"
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1040
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1053
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1041
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1054
msgid "No response from the InvenTree server"
msgstr ""
@@ -7249,27 +7342,27 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1063
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1051
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1064
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1068
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1056
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1069
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1073
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1061
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1074
msgid "The requested resource could not be located on the server"
msgstr ""
@@ -7281,11 +7374,11 @@ msgstr ""
msgid "HTTP method not allowed at URL"
msgstr ""
-#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1065
+#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1078
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1079
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -7354,7 +7447,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:140
-#: templates/js/translated/modals.js:1030
+#: templates/js/translated/modals.js:1043
msgid "Invalid server response"
msgstr ""
@@ -7382,7 +7475,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1018
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026
msgid "Remove stock item"
msgstr ""
@@ -7429,12 +7522,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73
-#: templates/js/translated/order.js:369 templates/js/translated/stock.js:510
+#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518
msgid "Format"
msgstr "Formato"
#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74
-#: templates/js/translated/order.js:370 templates/js/translated/stock.js:511
+#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519
msgid "Select file format"
msgstr ""
@@ -7490,87 +7583,87 @@ msgstr ""
msgid "Remove substitute part"
msgstr ""
-#: templates/js/translated/bom.js:340
-msgid "Select and add a new variant item using the input below"
+#: templates/js/translated/bom.js:352
+msgid "Select and add a new substitute part using the input below"
msgstr ""
-#: templates/js/translated/bom.js:351
+#: templates/js/translated/bom.js:363
msgid "Are you sure you wish to remove this substitute part link?"
msgstr ""
-#: templates/js/translated/bom.js:357
+#: templates/js/translated/bom.js:369
msgid "Remove Substitute Part"
msgstr ""
-#: templates/js/translated/bom.js:396
+#: templates/js/translated/bom.js:408
msgid "Add Substitute"
msgstr ""
-#: templates/js/translated/bom.js:397
+#: templates/js/translated/bom.js:409
msgid "Edit BOM Item Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:516
+#: templates/js/translated/bom.js:528
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:520 templates/js/translated/build.js:1171
+#: templates/js/translated/bom.js:532 templates/js/translated/build.js:1171
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:525
+#: templates/js/translated/bom.js:537
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:597
+#: templates/js/translated/bom.js:609
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:612
+#: templates/js/translated/bom.js:624
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:619
+#: templates/js/translated/bom.js:631
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:668 templates/js/translated/bom.js:757
+#: templates/js/translated/bom.js:680 templates/js/translated/bom.js:769
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:728
+#: templates/js/translated/bom.js:740
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:730
+#: templates/js/translated/bom.js:742
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:732
+#: templates/js/translated/bom.js:744
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:734 templates/js/translated/bom.js:908
+#: templates/js/translated/bom.js:746 templates/js/translated/bom.js:920
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:736 templates/js/translated/bom.js:891
+#: templates/js/translated/bom.js:748 templates/js/translated/bom.js:903
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:830 templates/js/translated/build.js:915
+#: templates/js/translated/bom.js:842 templates/js/translated/build.js:915
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:886
+#: templates/js/translated/bom.js:898
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:1086 templates/js/translated/build.js:1155
+#: templates/js/translated/bom.js:1100 templates/js/translated/build.js:1155
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1108
+#: templates/js/translated/bom.js:1122
msgid "Inherited from parent BOM"
msgstr ""
@@ -7726,9 +7819,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1206
-#: templates/js/translated/part.js:1617 templates/js/translated/stock.js:1512
-#: templates/js/translated/stock.js:2321
+#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1213
+#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1520
+#: templates/js/translated/stock.js:2479
msgid "Select"
msgstr ""
@@ -7736,7 +7829,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2540
+#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2698
msgid "No user information"
msgstr ""
@@ -7809,34 +7902,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:511
-#: templates/js/translated/part.js:596
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:517
+#: templates/js/translated/part.js:602
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:515
-#: templates/js/translated/part.js:600
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:521
+#: templates/js/translated/part.js:606
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:690
+#: templates/js/translated/company.js:631 templates/js/translated/part.js:696
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:732
+#: templates/js/translated/company.js:668 templates/js/translated/part.js:738
msgid "Edit parameter"
msgstr "Modifica parametro"
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:733
+#: templates/js/translated/company.js:669 templates/js/translated/part.js:739
msgid "Delete parameter"
msgstr "Elimina il parametro"
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:750
+#: templates/js/translated/company.js:688 templates/js/translated/part.js:756
msgid "Edit Parameter"
msgstr "Modifica parametro"
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:762
+#: templates/js/translated/company.js:699 templates/js/translated/part.js:768
msgid "Delete Parameter"
msgstr "Elimina Parametri"
@@ -7845,12 +7938,12 @@ msgid "No supplier parts found"
msgstr "Nessun fornitore trovato"
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:420
+#: templates/js/translated/filters.js:429
msgid "true"
msgstr "vero"
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:421
+#: templates/js/translated/filters.js:430
msgid "false"
msgstr "falso"
@@ -7870,7 +7963,7 @@ msgstr "Aggiungi nuovo filtro"
msgid "Clear all filters"
msgstr "Cancella tutti i filtri"
-#: templates/js/translated/filters.js:329
+#: templates/js/translated/filters.js:338
msgid "Create filter"
msgstr "Crea filtro"
@@ -7899,20 +7992,20 @@ msgstr "Mostra operazione non consentita"
msgid "Enter a valid number"
msgstr "Inserisci un numero valido"
-#: templates/js/translated/forms.js:1080 templates/modals.html:19
+#: templates/js/translated/forms.js:1082 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1471
+#: templates/js/translated/forms.js:1487
msgid "No results found"
msgstr "Nessun risultato trovato"
-#: templates/js/translated/forms.js:1675
+#: templates/js/translated/forms.js:1691
msgid "Searching"
msgstr "Ricerca"
-#: templates/js/translated/forms.js:1895
+#: templates/js/translated/forms.js:1930
msgid "Clear input"
msgstr "Cancella input"
@@ -7925,7 +8018,7 @@ msgid "NO"
msgstr "NO"
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1042
+#: templates/js/translated/stock.js:1050
msgid "Select Stock Items"
msgstr ""
@@ -7975,12 +8068,12 @@ msgid "Select Label Template"
msgstr "Seleziona Modello Etichetta"
#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
-#: templates/js/translated/modals.js:599
+#: templates/js/translated/modals.js:610
msgid "Cancel"
msgstr "Annulla"
#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:666 templates/js/translated/modals.js:969
+#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:982
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr "Invia"
@@ -7989,47 +8082,47 @@ msgstr "Invia"
msgid "Form Title"
msgstr "Titolo modulo"
-#: templates/js/translated/modals.js:381
+#: templates/js/translated/modals.js:392
msgid "Waiting for server..."
msgstr "In attesa del server..."
-#: templates/js/translated/modals.js:540
+#: templates/js/translated/modals.js:551
msgid "Show Error Information"
msgstr "Informazioni sull'errore"
-#: templates/js/translated/modals.js:598
+#: templates/js/translated/modals.js:609
msgid "Accept"
msgstr "Accetta"
-#: templates/js/translated/modals.js:655
+#: templates/js/translated/modals.js:666
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:921
+#: templates/js/translated/modals.js:934
msgid "Invalid response from server"
msgstr "Risposta dal server non valida"
-#: templates/js/translated/modals.js:921
+#: templates/js/translated/modals.js:934
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:946
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1030
+#: templates/js/translated/modals.js:1043
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1045
+#: templates/js/translated/modals.js:1058
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1046
+#: templates/js/translated/modals.js:1059
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1069
+#: templates/js/translated/modals.js:1082
msgid "Error requesting form data"
msgstr ""
@@ -8053,23 +8146,24 @@ msgstr ""
msgid "Part ID"
msgstr "Codice Articolo"
-#: templates/js/translated/model_renderers.js:236
+#: templates/js/translated/model_renderers.js:249
+#: templates/js/translated/model_renderers.js:270
msgid "Order ID"
msgstr "ID Ordine"
-#: templates/js/translated/model_renderers.js:253
+#: templates/js/translated/model_renderers.js:287
msgid "Shipment ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:273
+#: templates/js/translated/model_renderers.js:307
msgid "Category ID"
msgstr "Id Categoria"
-#: templates/js/translated/model_renderers.js:310
+#: templates/js/translated/model_renderers.js:344
msgid "Manufacturer Part ID"
msgstr "ID articolo produttore"
-#: templates/js/translated/model_renderers.js:339
+#: templates/js/translated/model_renderers.js:373
msgid "Supplier Part ID"
msgstr ""
@@ -8117,7 +8211,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr "Quantità da ricevere"
-#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2123
+#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2131
msgid "Stock Status"
msgstr "Stato giacenza"
@@ -8141,7 +8235,7 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:790 templates/js/translated/part.js:803
+#: templates/js/translated/order.js:790 templates/js/translated/part.js:809
msgid "No purchase orders found"
msgstr ""
@@ -8166,7 +8260,7 @@ msgid "Total"
msgstr "Totale"
#: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163
-#: templates/js/translated/part.js:1834 templates/js/translated/part.js:2045
+#: templates/js/translated/part.js:1841 templates/js/translated/part.js:2052
msgid "Unit Price"
msgstr "Prezzo Unitario"
@@ -8182,7 +8276,7 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1166 templates/js/translated/part.js:935
+#: templates/js/translated/order.js:1166 templates/js/translated/part.js:942
msgid "Receive line item"
msgstr ""
@@ -8251,7 +8345,7 @@ msgid "Delete Stock Allocation"
msgstr "Elimina posizione giacenza"
#: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048
-#: templates/js/translated/stock.js:1428
+#: templates/js/translated/stock.js:1436
msgid "Shipped to customer"
msgstr "Spedito al cliente"
@@ -8379,144 +8473,148 @@ msgstr "Modifica l'articolo"
msgid "Part edited"
msgstr "Articolo modificato"
-#: templates/js/translated/part.js:412
+#: templates/js/translated/part.js:351
+msgid "Create Part Variant"
+msgstr ""
+
+#: templates/js/translated/part.js:418
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:414
+#: templates/js/translated/part.js:420
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:419
+#: templates/js/translated/part.js:425
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:421
+#: templates/js/translated/part.js:427
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:438
+#: templates/js/translated/part.js:444
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:448
+#: templates/js/translated/part.js:454
msgid "Validate Bill of Materials"
msgstr "Convalida la distinta dei materiali"
-#: templates/js/translated/part.js:451
+#: templates/js/translated/part.js:457
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:475
+#: templates/js/translated/part.js:481
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:503 templates/js/translated/part.js:588
+#: templates/js/translated/part.js:509 templates/js/translated/part.js:594
msgid "Trackable part"
msgstr "Parte tracciabile"
-#: templates/js/translated/part.js:507 templates/js/translated/part.js:592
+#: templates/js/translated/part.js:513 templates/js/translated/part.js:598
msgid "Virtual part"
msgstr "Parte virtuale"
-#: templates/js/translated/part.js:519
+#: templates/js/translated/part.js:525
msgid "Subscribed part"
msgstr "Parte sottoscritta"
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:529
msgid "Salable part"
msgstr "Parte vendibile"
-#: templates/js/translated/part.js:638
+#: templates/js/translated/part.js:644
msgid "No variants found"
msgstr "Nessuna variante trovata"
-#: templates/js/translated/part.js:1005
+#: templates/js/translated/part.js:1012
msgid "Delete part relationship"
msgstr "Elimina relazione tra i componenti"
-#: templates/js/translated/part.js:1029
+#: templates/js/translated/part.js:1036
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1096 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:1363
msgid "No parts found"
msgstr "Nessun articolo trovato"
-#: templates/js/translated/part.js:1266
+#: templates/js/translated/part.js:1273
msgid "No category"
msgstr "Nessuna categoria"
-#: templates/js/translated/part.js:1289
+#: templates/js/translated/part.js:1296
#: templates/js/translated/table_filters.js:430
msgid "Low stock"
msgstr "In esaurimento"
-#: templates/js/translated/part.js:1380 templates/js/translated/part.js:1552
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559
+#: templates/js/translated/stock.js:2440
msgid "Display as list"
msgstr "Visualizza come elenco"
-#: templates/js/translated/part.js:1396
+#: templates/js/translated/part.js:1403
msgid "Display as grid"
msgstr "Visualizza come griglia"
-#: templates/js/translated/part.js:1571 templates/js/translated/stock.js:2301
+#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2459
msgid "Display as tree"
msgstr "Visualizza come struttura ad albero"
-#: templates/js/translated/part.js:1635
+#: templates/js/translated/part.js:1642
msgid "Subscribed category"
msgstr "Categoria sottoscritta"
-#: templates/js/translated/part.js:1649 templates/js/translated/stock.js:2345
+#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2503
msgid "Path"
msgstr "Percorso"
-#: templates/js/translated/part.js:1693
+#: templates/js/translated/part.js:1700
msgid "No test templates matching query"
msgstr "Nessun modello di test corrispondente"
-#: templates/js/translated/part.js:1744 templates/js/translated/stock.js:1234
+#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1242
msgid "Edit test result"
msgstr "Modificare il risultato del test"
-#: templates/js/translated/part.js:1745 templates/js/translated/stock.js:1235
+#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1243
msgid "Delete test result"
msgstr "Cancellare il risultato del test"
-#: templates/js/translated/part.js:1751
+#: templates/js/translated/part.js:1758
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1773
+#: templates/js/translated/part.js:1780
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1787
+#: templates/js/translated/part.js:1794
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1812
+#: templates/js/translated/part.js:1819
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1867
+#: templates/js/translated/part.js:1874
#, python-brace-format
msgid "Edit ${human_name}"
msgstr "Modifica ${human_name}"
-#: templates/js/translated/part.js:1868
+#: templates/js/translated/part.js:1875
#, python-brace-format
msgid "Delete ${human_name}"
msgstr "Elimina ${human_name}"
-#: templates/js/translated/part.js:1969
+#: templates/js/translated/part.js:1976
msgid "Single Price"
msgstr "Prezzo Singolo"
-#: templates/js/translated/part.js:1988
+#: templates/js/translated/part.js:1995
msgid "Single Price Difference"
msgstr ""
@@ -8590,340 +8688,344 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:73
+#: templates/js/translated/stock.js:74
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:173
+#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:181
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/stock.js:93 templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:94 templates/js/translated/stock.js:183
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/stock.js:101
+#: templates/js/translated/stock.js:102
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:110
+#: templates/js/translated/stock.js:111
msgid "Parent stock location"
msgstr "Posizione giacenza principale"
-#: templates/js/translated/stock.js:146
+#: templates/js/translated/stock.js:154
msgid "New Stock Location"
msgstr "Nuova posizione giacenza"
-#: templates/js/translated/stock.js:186
+#: templates/js/translated/stock.js:194
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:225
+#: templates/js/translated/stock.js:233
msgid "Enter initial quantity for this stock item"
msgstr "Inserisci quantità iniziale per questo articolo in giacenza"
-#: templates/js/translated/stock.js:231
+#: templates/js/translated/stock.js:239
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr "Inserire i numeri di serie per la nuova giacenza (o lasciare vuoto)"
-#: templates/js/translated/stock.js:374
+#: templates/js/translated/stock.js:382
msgid "Created new stock item"
msgstr "Crea nuova allocazione magazzino"
-#: templates/js/translated/stock.js:387
+#: templates/js/translated/stock.js:395
msgid "Created multiple stock items"
msgstr "Creato più elementi stock"
-#: templates/js/translated/stock.js:412
+#: templates/js/translated/stock.js:420
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:416 templates/js/translated/stock.js:417
+#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:433
+#: templates/js/translated/stock.js:441
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:453
+#: templates/js/translated/stock.js:461
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:462
+#: templates/js/translated/stock.js:470
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:507
+#: templates/js/translated/stock.js:515
msgid "Export Stock"
msgstr "Esporta giacenza"
-#: templates/js/translated/stock.js:518
+#: templates/js/translated/stock.js:526
msgid "Include Sublocations"
msgstr "Includi sotto allocazioni"
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:527
msgid "Include stock items in sublocations"
msgstr "Includi elementi in giacenza nelle sottoallocazioni"
-#: templates/js/translated/stock.js:628
+#: templates/js/translated/stock.js:636
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:629
+#: templates/js/translated/stock.js:637
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:706
+#: templates/js/translated/stock.js:714
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:707
+#: templates/js/translated/stock.js:715
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:709
+#: templates/js/translated/stock.js:717
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:710
+#: templates/js/translated/stock.js:718
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:796
+#: templates/js/translated/stock.js:804
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:797
+#: templates/js/translated/stock.js:805
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:892
+#: templates/js/translated/stock.js:900
msgid "Transfer Stock"
msgstr "Trasferisci giacenza"
-#: templates/js/translated/stock.js:893
+#: templates/js/translated/stock.js:901
msgid "Move"
msgstr "Sposta"
-#: templates/js/translated/stock.js:899
+#: templates/js/translated/stock.js:907
msgid "Count Stock"
msgstr "Conta giacenza"
-#: templates/js/translated/stock.js:900
+#: templates/js/translated/stock.js:908
msgid "Count"
msgstr "Conta"
-#: templates/js/translated/stock.js:904
+#: templates/js/translated/stock.js:912
msgid "Remove Stock"
msgstr "Rimuovi giacenza"
-#: templates/js/translated/stock.js:905
+#: templates/js/translated/stock.js:913
msgid "Take"
msgstr "Prendi"
-#: templates/js/translated/stock.js:909
+#: templates/js/translated/stock.js:917
msgid "Add Stock"
msgstr "Aggiungi giacenza"
-#: templates/js/translated/stock.js:910 users/models.py:206
+#: templates/js/translated/stock.js:918 users/models.py:208
msgid "Add"
msgstr "Aggiungi"
-#: templates/js/translated/stock.js:914 templates/stock_table.html:58
+#: templates/js/translated/stock.js:922 templates/stock_table.html:58
msgid "Delete Stock"
msgstr "Elimina Stock"
-#: templates/js/translated/stock.js:1003
+#: templates/js/translated/stock.js:1011
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1003
+#: templates/js/translated/stock.js:1011
msgid "Specify stock quantity"
msgstr "Specificare la quantità di magazzino"
-#: templates/js/translated/stock.js:1043
+#: templates/js/translated/stock.js:1051
msgid "You must select at least one available stock item"
msgstr "Devi selezionare almeno un articolo disponibile"
-#: templates/js/translated/stock.js:1201
+#: templates/js/translated/stock.js:1209
msgid "PASS"
msgstr "PASS"
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1211
msgid "FAIL"
msgstr "FAIL"
-#: templates/js/translated/stock.js:1208
+#: templates/js/translated/stock.js:1216
msgid "NO RESULT"
msgstr "NESSUN RISULTATO"
-#: templates/js/translated/stock.js:1230
+#: templates/js/translated/stock.js:1238
msgid "Add test result"
msgstr "Aggiungi risultato test"
-#: templates/js/translated/stock.js:1256
+#: templates/js/translated/stock.js:1264
msgid "No test results found"
msgstr "Nessun risultato di prova trovato"
-#: templates/js/translated/stock.js:1313
+#: templates/js/translated/stock.js:1321
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1420
+#: templates/js/translated/stock.js:1428
msgid "In production"
msgstr "In produzione"
-#: templates/js/translated/stock.js:1424
+#: templates/js/translated/stock.js:1432
msgid "Installed in Stock Item"
msgstr "Installato nell'elemento stock"
-#: templates/js/translated/stock.js:1432
+#: templates/js/translated/stock.js:1440
msgid "Assigned to Sales Order"
msgstr "Assegnato all'ordine di vendita"
-#: templates/js/translated/stock.js:1438
+#: templates/js/translated/stock.js:1446
msgid "No stock location set"
msgstr "Nessuna giacenza impostata"
-#: templates/js/translated/stock.js:1596
+#: templates/js/translated/stock.js:1604
msgid "Stock item is in production"
msgstr "L'articolo di magazzino è in produzione"
-#: templates/js/translated/stock.js:1601
+#: templates/js/translated/stock.js:1609
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1612
msgid "Stock item assigned to customer"
msgstr "Articolo stock assegnato al cliente"
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/stock.js:1616
msgid "Stock item has expired"
msgstr "L'articolo stock è scaduto"
-#: templates/js/translated/stock.js:1610
+#: templates/js/translated/stock.js:1618
msgid "Stock item will expire soon"
msgstr "Articolo in giacenza prossimo alla scadenza"
-#: templates/js/translated/stock.js:1616
+#: templates/js/translated/stock.js:1624
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1626
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1620
+#: templates/js/translated/stock.js:1628
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1625
+#: templates/js/translated/stock.js:1633
msgid "Stock item has been installed in another item"
msgstr "L'elemento stock è stato installato in un altro articolo"
-#: templates/js/translated/stock.js:1632
+#: templates/js/translated/stock.js:1640
msgid "Stock item has been rejected"
msgstr "L'articolo stock è stato rifiutato"
-#: templates/js/translated/stock.js:1634
+#: templates/js/translated/stock.js:1642
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1644
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1640
+#: templates/js/translated/stock.js:1648
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr "Esaurito"
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1698
msgid "Stocktake"
msgstr "Inventario"
-#: templates/js/translated/stock.js:1763
+#: templates/js/translated/stock.js:1771
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1801
+#: templates/js/translated/stock.js:1809
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1822 templates/js/translated/stock.js:1870
+#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:1878
msgid "items"
msgstr "elementi"
-#: templates/js/translated/stock.js:1910
+#: templates/js/translated/stock.js:1918
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1937
+#: templates/js/translated/stock.js:1945
msgid "locations"
msgstr "posizione"
-#: templates/js/translated/stock.js:1939
+#: templates/js/translated/stock.js:1947
msgid "Undefined location"
msgstr "Posizione non definita"
-#: templates/js/translated/stock.js:2138
+#: templates/js/translated/stock.js:2146
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2152
+#: templates/js/translated/stock.js:2160
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2153
+#: templates/js/translated/stock.js:2161
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2377
+#: templates/js/translated/stock.js:2340
+msgid "Allocated Quantity"
+msgstr ""
+
+#: templates/js/translated/stock.js:2535
msgid "Invalid date"
msgstr "Data non valida"
-#: templates/js/translated/stock.js:2399
+#: templates/js/translated/stock.js:2557
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2424
+#: templates/js/translated/stock.js:2582
msgid "Location no longer exists"
msgstr "La posizione non esiste più"
-#: templates/js/translated/stock.js:2443
+#: templates/js/translated/stock.js:2601
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2462
+#: templates/js/translated/stock.js:2620
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2480
+#: templates/js/translated/stock.js:2638
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2503
+#: templates/js/translated/stock.js:2661
msgid "Added"
msgstr "Aggiunto"
-#: templates/js/translated/stock.js:2511
+#: templates/js/translated/stock.js:2669
msgid "Removed"
msgstr "Rimosso"
-#: templates/js/translated/stock.js:2552
+#: templates/js/translated/stock.js:2710
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2553
+#: templates/js/translated/stock.js:2711
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2604
+#: templates/js/translated/stock.js:2762
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2655
+#: templates/js/translated/stock.js:2813
msgid "Uninstall Stock Item"
msgstr ""
@@ -9195,11 +9297,11 @@ msgstr "Acquista"
msgid "Sell"
msgstr "Vendi"
-#: templates/navbar.html:113
+#: templates/navbar.html:114
msgid "Logout"
msgstr "Esci"
-#: templates/navbar.html:115
+#: templates/navbar.html:116
msgid "Login"
msgstr "Accedi"
@@ -9247,31 +9349,43 @@ msgstr "Modalità Docker"
msgid "Server is deployed using docker"
msgstr "Il server è distribuito utilizzando docker"
-#: templates/stats.html:40
+#: templates/stats.html:39
+msgid "Plugin Support"
+msgstr ""
+
+#: templates/stats.html:43
+msgid "Plugin support enabled"
+msgstr ""
+
+#: templates/stats.html:45
+msgid "Plugin support disabled"
+msgstr ""
+
+#: templates/stats.html:52
msgid "Server status"
msgstr "Stato del Server"
-#: templates/stats.html:43
+#: templates/stats.html:55
msgid "Healthy"
msgstr "Healthy"
-#: templates/stats.html:45
+#: templates/stats.html:57
msgid "Issues detected"
msgstr "Problemi rilevati"
-#: templates/stats.html:52
+#: templates/stats.html:64
msgid "Background Worker"
msgstr ""
-#: templates/stats.html:55
+#: templates/stats.html:67
msgid "Background worker not running"
msgstr "Processo in background non in esecuzione"
-#: templates/stats.html:63
+#: templates/stats.html:75
msgid "Email Settings"
msgstr "Email Settings"
-#: templates/stats.html:66
+#: templates/stats.html:78
msgid "Email settings not configured"
msgstr "Impostazioni dell'email non configurate"
@@ -9367,35 +9481,35 @@ msgstr "Permessi"
msgid "Important dates"
msgstr "Date Importanti"
-#: users/models.py:193
+#: users/models.py:195
msgid "Permission set"
msgstr "Impostazione autorizzazioni"
-#: users/models.py:201
+#: users/models.py:203
msgid "Group"
msgstr "Gruppo"
-#: users/models.py:204
+#: users/models.py:206
msgid "View"
msgstr "Visualizza"
-#: users/models.py:204
+#: users/models.py:206
msgid "Permission to view items"
msgstr "Autorizzazione a visualizzare gli articoli"
-#: users/models.py:206
+#: users/models.py:208
msgid "Permission to add items"
msgstr "Autorizzazione ad aggiungere elementi"
-#: users/models.py:208
+#: users/models.py:210
msgid "Change"
msgstr "Modificare"
-#: users/models.py:208
+#: users/models.py:210
msgid "Permissions to edit items"
msgstr "Permessi per modificare gli elementi"
-#: users/models.py:210
+#: users/models.py:212
msgid "Permission to delete items"
msgstr "Autorizzazione ad eliminare gli elementi"
diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po
index 7dff99a148..463b23c3cf 100644
--- a/InvenTree/locale/ja/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ja/LC_MESSAGES/django.po
@@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-01-10 03:54+0000\n"
-"PO-Revision-Date: 2022-01-10 03:58\n"
+"POT-Creation-Date: 2022-01-29 00:17+0000\n"
+"PO-Revision-Date: 2022-01-29 01:11\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
"Language: ja_JP\n"
@@ -18,15 +18,15 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 138\n"
-#: InvenTree/api.py:64
+#: InvenTree/api.py:55
msgid "API endpoint not found"
msgstr "APIエンドポイントが見つかりません"
-#: InvenTree/api.py:110
+#: InvenTree/api.py:101
msgid "No action specified"
msgstr "アクションが指定されていません"
-#: InvenTree/api.py:124
+#: InvenTree/api.py:116
msgid "No matching action found"
msgstr "一致するアクションが見つかりませんでした"
@@ -80,41 +80,41 @@ msgstr ""
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:437
+#: InvenTree/helpers.py:439
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:444 order/models.py:279 order/models.py:420
+#: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425
#: stock/views.py:1231
msgid "Invalid quantity provided"
msgstr "数量コードが無効です"
-#: InvenTree/helpers.py:447
+#: InvenTree/helpers.py:449
msgid "Empty serial number string"
msgstr "シリアル番号は空です"
-#: InvenTree/helpers.py:469 InvenTree/helpers.py:472 InvenTree/helpers.py:475
-#: InvenTree/helpers.py:500
+#: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477
+#: InvenTree/helpers.py:502
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "無効なグループ: {g}"
-#: InvenTree/helpers.py:510
+#: InvenTree/helpers.py:512
#, python-brace-format
msgid "Invalid group {group}"
msgstr ""
-#: InvenTree/helpers.py:516
+#: InvenTree/helpers.py:518
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:522
+#: InvenTree/helpers.py:524
msgid "No serial numbers found"
msgstr "シリアル番号が見つかりません"
-#: InvenTree/helpers.py:526
+#: InvenTree/helpers.py:528
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
@@ -127,7 +127,7 @@ msgstr ""
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:132 stock/models.py:1967
+#: InvenTree/models.py:132 stock/models.py:1995
#: templates/js/translated/attachment.js:119
msgid "Attachment"
msgstr "添付ファイル"
@@ -137,15 +137,15 @@ msgid "Select file to attach"
msgstr "添付ファイルを選択"
#: InvenTree/models.py:139 company/models.py:131 company/models.py:348
-#: company/models.py:564 order/models.py:124 part/models.py:828
+#: company/models.py:564 order/models.py:127 part/models.py:830
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1317
+#: templates/js/translated/company.js:829 templates/js/translated/part.js:1324
msgid "Link"
msgstr ""
-#: InvenTree/models.py:140 build/models.py:330 part/models.py:829
-#: stock/models.py:527
+#: InvenTree/models.py:140 build/models.py:332 part/models.py:831
+#: stock/models.py:529
msgid "Link to external URL"
msgstr ""
@@ -157,10 +157,11 @@ msgstr "コメント:"
msgid "File comment"
msgstr "ファイルコメント"
-#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213
-#: common/models.py:1214 part/models.py:2258 part/models.py:2278
+#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1223
+#: common/models.py:1224 common/models.py:1452 common/models.py:1453
+#: part/models.py:2265 part/models.py:2285
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2534
+#: templates/js/translated/stock.js:2692
msgid "User"
msgstr "ユーザー"
@@ -197,42 +198,42 @@ msgstr ""
msgid "Invalid choice"
msgstr "無効な選択です"
-#: InvenTree/models.py:277 InvenTree/models.py:278 company/models.py:415
-#: label/models.py:112 part/models.py:772 part/models.py:2442
-#: plugin/models.py:40 report/models.py:181
+#: InvenTree/models.py:277 InvenTree/models.py:278 common/models.py:1438
+#: company/models.py:415 label/models.py:112 part/models.py:774
+#: part/models.py:2449 plugin/models.py:40 report/models.py:181
#: templates/InvenTree/settings/mixins/urls.html:13
-#: templates/InvenTree/settings/plugin.html:47
-#: templates/InvenTree/settings/plugin.html:124
+#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin.html:125
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:279
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:561
-#: templates/js/translated/part.js:700 templates/js/translated/part.js:1624
-#: templates/js/translated/stock.js:2327
+#: templates/InvenTree/settings/settings.html:282
+#: templates/js/translated/company.js:641 templates/js/translated/part.js:567
+#: templates/js/translated/part.js:706 templates/js/translated/part.js:1631
+#: templates/js/translated/stock.js:2485
msgid "Name"
msgstr "お名前"
-#: InvenTree/models.py:284 build/models.py:207
+#: InvenTree/models.py:284 build/models.py:209
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:73 label/models.py:119
-#: order/models.py:122 part/models.py:795 part/templates/part/category.html:74
+#: order/models.py:125 part/models.py:797 part/templates/part/category.html:74
#: part/templates/part/part_base.html:163
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:93
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:327 templates/js/translated/bom.js:540
+#: templates/js/translated/bom.js:339 templates/js/translated/bom.js:552
#: templates/js/translated/build.js:1682 templates/js/translated/company.js:345
#: templates/js/translated/company.js:551
#: templates/js/translated/company.js:840 templates/js/translated/order.js:836
#: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258
-#: templates/js/translated/part.js:620 templates/js/translated/part.js:992
-#: templates/js/translated/part.js:1077 templates/js/translated/part.js:1247
-#: templates/js/translated/part.js:1643 templates/js/translated/part.js:1712
-#: templates/js/translated/stock.js:1569 templates/js/translated/stock.js:2339
-#: templates/js/translated/stock.js:2384
+#: templates/js/translated/part.js:626 templates/js/translated/part.js:999
+#: templates/js/translated/part.js:1084 templates/js/translated/part.js:1254
+#: templates/js/translated/part.js:1650 templates/js/translated/part.js:1719
+#: templates/js/translated/stock.js:1577 templates/js/translated/stock.js:2314
+#: templates/js/translated/stock.js:2497 templates/js/translated/stock.js:2542
msgid "Description"
msgstr "説明"
@@ -244,7 +245,7 @@ msgstr "説明 (オプション)"
msgid "parent"
msgstr "親"
-#: InvenTree/serializers.py:65 part/models.py:2727
+#: InvenTree/serializers.py:65 part/models.py:2734
msgid "Must be a valid number"
msgstr "有効な数字でなければなりません"
@@ -252,83 +253,83 @@ msgstr "有効な数字でなければなりません"
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:661
msgid "German"
msgstr "ドイツ語"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:662
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:663
msgid "English"
msgstr "英語"
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:664
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:665
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:666
msgid "French"
msgstr "フランス語"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:667
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:668
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:669
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:670
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:671
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:672
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:673
msgid "Polish"
msgstr "ポーランド語"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:674
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:675
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:676
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:677
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:678
msgid "Turkish"
msgstr "トルコ語"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:679
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:680
msgid "Chinese"
msgstr ""
@@ -374,7 +375,7 @@ msgstr "紛失"
msgid "Returned"
msgstr "返品済"
-#: InvenTree/status_codes.py:143 order/models.py:941
+#: InvenTree/status_codes.py:143 order/models.py:961
#: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255
msgid "Shipped"
msgstr "発送済み"
@@ -455,7 +456,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2064
+#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2072
msgid "Merged stock items"
msgstr ""
@@ -543,56 +544,56 @@ msgstr ""
msgid "System Information"
msgstr ""
-#: barcodes/api.py:54 barcodes/api.py:151
+#: barcodes/api.py:54 barcodes/api.py:152
msgid "Must provide barcode_data parameter"
msgstr ""
-#: barcodes/api.py:127
+#: barcodes/api.py:128
msgid "No match found for barcode data"
msgstr ""
-#: barcodes/api.py:129
+#: barcodes/api.py:130
msgid "Match found for barcode data"
msgstr ""
-#: barcodes/api.py:154
+#: barcodes/api.py:155
msgid "Must provide stockitem parameter"
msgstr ""
-#: barcodes/api.py:161
+#: barcodes/api.py:162
msgid "No matching stock item found"
msgstr ""
-#: barcodes/api.py:191
+#: barcodes/api.py:193
msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:195
+#: barcodes/api.py:197
msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:199
+#: barcodes/api.py:201
msgid "Barcode already matches Part"
msgstr ""
-#: barcodes/api.py:205 barcodes/api.py:217
+#: barcodes/api.py:207 barcodes/api.py:219
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:223
+#: barcodes/api.py:225
msgid "Barcode associated with Stock Item"
msgstr ""
-#: build/forms.py:36 build/models.py:1286
+#: build/forms.py:36 build/models.py:1293
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:35 common/models.py:1253
+#: build/templates/build/detail.html:35 common/models.py:1263
#: company/forms.py:42 company/templates/company/supplier_part.html:251
-#: order/models.py:796 order/models.py:1207 order/serializers.py:810
+#: order/models.py:805 order/models.py:1229 order/serializers.py:816
#: order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:145
-#: part/forms.py:161 part/forms.py:177 part/models.py:2629
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144
+#: part/forms.py:160 part/forms.py:176 part/models.py:2636
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:962 part/templates/part/detail.html:1048
+#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -603,7 +604,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:181
#: stock/templates/stock/item_base.html:262
#: stock/templates/stock/item_base.html:270
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:555
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:567
#: templates/js/translated/build.js:295 templates/js/translated/build.js:495
#: templates/js/translated/build.js:689 templates/js/translated/build.js:699
#: templates/js/translated/build.js:1075 templates/js/translated/build.js:1422
@@ -611,11 +612,11 @@ msgstr ""
#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056
#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859
#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036
-#: templates/js/translated/order.js:2150 templates/js/translated/part.js:900
-#: templates/js/translated/part.js:1855 templates/js/translated/part.js:1978
-#: templates/js/translated/part.js:2056 templates/js/translated/stock.js:383
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:750
-#: templates/js/translated/stock.js:2519 templates/js/translated/stock.js:2621
+#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906
+#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985
+#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:391
+#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758
+#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2779
msgid "Quantity"
msgstr ""
@@ -623,9 +624,9 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:41 order/serializers.py:814 stock/forms.py:81
-#: stock/serializers.py:314 templates/js/translated/stock.js:230
-#: templates/js/translated/stock.js:384
+#: build/forms.py:41 order/serializers.py:820 stock/forms.py:81
+#: stock/serializers.py:314 templates/js/translated/stock.js:238
+#: templates/js/translated/stock.js:392
msgid "Serial Numbers"
msgstr ""
@@ -649,18 +650,18 @@ msgstr ""
msgid "Confirm build cancellation"
msgstr ""
-#: build/models.py:133
+#: build/models.py:135
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:139 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:457
+#: templates/js/translated/build.js:457 templates/js/translated/stock.js:2290
msgid "Build Order"
msgstr ""
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:140 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:92
#: order/templates/order/so_sidebar.html:13
@@ -670,40 +671,40 @@ msgstr ""
msgid "Build Orders"
msgstr ""
-#: build/models.py:198
+#: build/models.py:200
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:210 order/models.py:536
-#: order/models.py:803 part/models.py:2638
+#: build/models.py:201 order/models.py:213 order/models.py:541
+#: order/models.py:812 part/models.py:2645
#: 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/translated/bom.js:547 templates/js/translated/build.js:1179
+#: templates/js/translated/bom.js:559 templates/js/translated/build.js:1179
#: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144
msgid "Reference"
msgstr ""
-#: build/models.py:210
+#: build/models.py:212
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:219 build/templates/build/build_base.html:164
+#: build/models.py:221 build/templates/build/build_base.html:164
#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:222
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:225 build/templates/build/build_base.html:77
+#: build/models.py:227 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
-#: order/models.py:856 order/models.py:930
-#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
-#: part/models.py:2204 part/models.py:2220 part/models.py:2239
-#: part/models.py:2256 part/models.py:2358 part/models.py:2480
-#: part/models.py:2613 part/models.py:2920 part/serializers.py:658
+#: order/models.py:876 order/models.py:950
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359
+#: part/models.py:2211 part/models.py:2227 part/models.py:2246
+#: part/models.py:2263 part/models.py:2365 part/models.py:2487
+#: part/models.py:2620 part/models.py:2927 part/serializers.py:658
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -713,205 +714,205 @@ msgstr ""
#: templates/InvenTree/search.html:80
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
-#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:326
-#: templates/js/translated/bom.js:505 templates/js/translated/build.js:680
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:338
+#: templates/js/translated/bom.js:517 templates/js/translated/build.js:680
#: templates/js/translated/build.js:1048 templates/js/translated/build.js:1419
#: templates/js/translated/build.js:1687 templates/js/translated/company.js:492
#: templates/js/translated/company.js:749 templates/js/translated/order.js:84
#: templates/js/translated/order.js:586 templates/js/translated/order.js:1004
#: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933
-#: templates/js/translated/order.js:2128 templates/js/translated/part.js:977
-#: templates/js/translated/part.js:1058 templates/js/translated/part.js:1225
-#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:719
-#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1526
-#: templates/js/translated/stock.js:2609
+#: templates/js/translated/order.js:2128 templates/js/translated/part.js:984
+#: templates/js/translated/part.js:1065 templates/js/translated/part.js:1232
+#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727
+#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1534
+#: templates/js/translated/stock.js:2767
msgid "Part"
msgstr "パーツ"
-#: build/models.py:233
+#: build/models.py:235
msgid "Select part to build"
msgstr ""
-#: build/models.py:238
+#: build/models.py:240
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:242
+#: build/models.py:244
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 templates/js/translated/build.js:1407
+#: build/models.py:249 templates/js/translated/build.js:1407
#: templates/js/translated/order.js:1564
msgid "Source Location"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:256
+#: build/models.py:258
msgid "Destination Location"
msgstr ""
-#: build/models.py:260
+#: build/models.py:262
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:264
+#: build/models.py:266
msgid "Build Quantity"
msgstr ""
-#: build/models.py:267
+#: build/models.py:269
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:271
+#: build/models.py:273
msgid "Completed items"
msgstr ""
-#: build/models.py:273
+#: build/models.py:275
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:277 part/templates/part/part_base.html:234
+#: build/models.py:279 part/templates/part/part_base.html:234
msgid "Build Status"
msgstr ""
-#: build/models.py:281
+#: build/models.py:283
msgid "Build status code"
msgstr ""
-#: build/models.py:285 stock/models.py:531
+#: build/models.py:287 stock/models.py:533
msgid "Batch Code"
msgstr ""
-#: build/models.py:289
+#: build/models.py:291
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:126 part/models.py:967
+#: build/models.py:294 order/models.py:129 part/models.py:969
#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:558
+#: build/models.py:298 order/models.py:563
msgid "Target completion date"
msgstr ""
-#: build/models.py:297
+#: build/models.py:299
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:252
+#: build/models.py:302 order/models.py:255
#: templates/js/translated/build.js:1758
msgid "Completion Date"
msgstr ""
-#: build/models.py:306
+#: build/models.py:308
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:1729
+#: build/models.py:316 templates/js/translated/build.js:1729
msgid "Issued by"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:323 build/templates/build/build_base.html:185
-#: build/templates/build/detail.html:116 order/models.py:140
+#: build/models.py:325 build/templates/build/build_base.html:185
+#: build/templates/build/detail.html:116 order/models.py:143
#: order/templates/order/order_base.html:170
-#: order/templates/order/sales_order_base.html:182 part/models.py:971
+#: order/templates/order/sales_order_base.html:182 part/models.py:973
#: report/templates/report/inventree_build_order_base.html:159
#: templates/js/translated/build.js:1741 templates/js/translated/order.js:864
msgid "Responsible"
msgstr ""
-#: build/models.py:324
+#: build/models.py:326
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:329 build/templates/build/detail.html:102
+#: build/models.py:331 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:525
+#: part/templates/part/part_base.html:354 stock/models.py:527
#: stock/templates/stock/item_base.html:373
msgid "External Link"
msgstr ""
-#: build/models.py:334 build/serializers.py:201
+#: build/models.py:336 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
-#: order/models.py:144 order/models.py:805 order/models.py:1051
+#: order/models.py:147 order/models.py:814 order/models.py:1071
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:17 part/models.py:956
-#: part/templates/part/detail.html:120 part/templates/part/part_sidebar.html:50
+#: order/templates/order/so_sidebar.html:17 part/models.py:958
+#: part/templates/part/detail.html:137 part/templates/part/part_sidebar.html:54
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:597
-#: stock/models.py:1867 stock/models.py:1973 stock/serializers.py:332
-#: stock/serializers.py:639 stock/serializers.py:737 stock/serializers.py:869
-#: stock/templates/stock/stock_sidebar.html:21
-#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:711
+#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:599
+#: stock/models.py:1895 stock/models.py:2001 stock/serializers.py:332
+#: stock/serializers.py:640 stock/serializers.py:738 stock/serializers.py:870
+#: stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:723
#: templates/js/translated/company.js:845 templates/js/translated/order.js:1149
#: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280
-#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1795
+#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1803
msgid "Notes"
msgstr ""
-#: build/models.py:335
+#: build/models.py:337
msgid "Extra build notes"
msgstr ""
-#: build/models.py:710
+#: build/models.py:717
msgid "No build output specified"
msgstr ""
-#: build/models.py:713
+#: build/models.py:720
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:716
+#: build/models.py:723
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1108
+#: build/models.py:1115
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1117
+#: build/models.py:1124
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1127
+#: build/models.py:1134
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1133 order/models.py:1167
+#: build/models.py:1140 order/models.py:1189
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1139
+#: build/models.py:1146
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1196
+#: build/models.py:1203
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1256 stock/templates/stock/item_base.html:345
+#: build/models.py:1263 stock/templates/stock/item_base.html:345
#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1660
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1257
+#: build/models.py:1264
msgid "Build to allocate parts"
msgstr "パーツを割り当てるためにビルドする"
-#: build/models.py:1273 build/serializers.py:388 order/serializers.py:690
-#: order/serializers.py:708 stock/serializers.py:577 stock/serializers.py:695
+#: build/models.py:1280 build/serializers.py:388 order/serializers.py:696
+#: order/serializers.py:714 stock/serializers.py:578 stock/serializers.py:696
#: stock/templates/stock/item_base.html:9
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:367
@@ -920,24 +921,24 @@ msgstr "パーツを割り当てるためにビルドする"
#: templates/js/translated/order.js:85 templates/js/translated/order.js:1577
#: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837
#: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030
-#: templates/js/translated/stock.js:555 templates/js/translated/stock.js:720
-#: templates/js/translated/stock.js:2470
+#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728
+#: templates/js/translated/stock.js:2628
msgid "Stock Item"
msgstr ""
-#: build/models.py:1274
+#: build/models.py:1281
msgid "Source stock item"
msgstr ""
-#: build/models.py:1287
+#: build/models.py:1294
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1295
+#: build/models.py:1302
msgid "Install into"
msgstr ""
-#: build/models.py:1296
+#: build/models.py:1303
msgid "Destination stock item"
msgstr ""
@@ -962,16 +963,16 @@ msgid "This build output is not fully allocated"
msgstr ""
#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294
-#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:730
-#: stock/serializers.py:971 stock/templates/stock/item_base.html:313
+#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:731
+#: stock/serializers.py:972 stock/templates/stock/item_base.html:313
#: templates/js/translated/barcode.js:384
#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:480
#: templates/js/translated/build.js:1087 templates/js/translated/order.js:508
#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955
#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044
-#: templates/js/translated/part.js:179 templates/js/translated/stock.js:556
-#: templates/js/translated/stock.js:721 templates/js/translated/stock.js:928
-#: templates/js/translated/stock.js:1676 templates/js/translated/stock.js:2411
+#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564
+#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936
+#: templates/js/translated/stock.js:1684 templates/js/translated/stock.js:2569
msgid "Location"
msgstr ""
@@ -980,12 +981,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:137
-#: build/templates/build/detail.html:63 order/models.py:552
+#: build/templates/build/detail.html:63 order/models.py:557
#: order/serializers.py:247 stock/templates/stock/item_base.html:187
#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1716
#: templates/js/translated/order.js:591 templates/js/translated/order.js:840
-#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1651
-#: templates/js/translated/stock.js:2488 templates/js/translated/stock.js:2637
+#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:2646 templates/js/translated/stock.js:2795
msgid "Status"
msgstr ""
@@ -1021,8 +1022,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:313 build/serializers.py:362 part/models.py:2753
-#: part/models.py:2912
+#: build/serializers.py:313 build/serializers.py:362 part/models.py:2760
+#: part/models.py:2919
msgid "BOM Item"
msgstr ""
@@ -1038,16 +1039,16 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:394 stock/serializers.py:584
+#: build/serializers.py:394 stock/serializers.py:585
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:408 order/models.py:277 order/serializers.py:240
-#: stock/models.py:365 stock/models.py:1077 stock/serializers.py:305
+#: build/serializers.py:408 order/models.py:280 order/serializers.py:240
+#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:450 order/serializers.py:741
+#: build/serializers.py:450 order/serializers.py:747
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1060,7 +1061,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:491 order/serializers.py:984
+#: build/serializers.py:491 order/serializers.py:990
msgid "Allocation items must be provided"
msgstr ""
@@ -1164,13 +1165,13 @@ msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:171
-#: build/templates/build/detail.html:95 order/models.py:927
-#: order/models.py:1023 order/templates/order/sales_order_base.html:9
+#: build/templates/build/detail.html:95 order/models.py:947
+#: order/models.py:1043 order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/order.js:1218
+#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2304
msgid "Sales Order"
msgstr ""
@@ -1224,7 +1225,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:50 order/models.py:878 stock/forms.py:136
+#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:136
#: templates/js/translated/order.js:592 templates/js/translated/order.js:1138
msgid "Destination"
msgstr ""
@@ -1239,7 +1240,7 @@ msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:331
-#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2644
+#: templates/js/translated/stock.js:1673 templates/js/translated/stock.js:2802
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:238
msgid "Batch"
@@ -1343,9 +1344,9 @@ msgstr ""
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:107
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:196
-#: part/templates/part/part_sidebar.html:48 stock/templates/stock/item.html:95
-#: stock/templates/stock/stock_sidebar.html:19
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:213
+#: part/templates/part/part_sidebar.html:52 stock/templates/stock/item.html:112
+#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr ""
@@ -1360,8 +1361,8 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:108
#: order/templates/order/sales_order_detail.html:127
#: order/templates/order/sales_order_detail.html:186
-#: part/templates/part/detail.html:124 stock/templates/stock/item.html:115
-#: stock/templates/stock/item.html:205
+#: part/templates/part/detail.html:141 stock/templates/stock/item.html:132
+#: stock/templates/stock/item.html:235
msgid "Edit Notes"
msgstr ""
@@ -1373,7 +1374,7 @@ msgstr ""
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:303
+#: build/templates/build/index.html:18 part/templates/part/detail.html:320
msgid "New Build Order"
msgstr ""
@@ -1453,23 +1454,23 @@ msgstr ""
msgid "Delete Build Order"
msgstr ""
-#: common/files.py:67
+#: common/files.py:65
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
-#: common/files.py:69
+#: common/files.py:67
msgid "Error reading file (invalid encoding)"
msgstr ""
-#: common/files.py:74
+#: common/files.py:72
msgid "Error reading file (invalid format)"
msgstr ""
-#: common/files.py:76
+#: common/files.py:74
msgid "Error reading file (incorrect dimension)"
msgstr ""
-#: common/files.py:78
+#: common/files.py:76
msgid "Error reading file (data could be corrupted)"
msgstr ""
@@ -1490,740 +1491,828 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:344 common/models.py:998 common/models.py:1206
-msgid "Settings key (must be unique - case insensitive"
+#: common/models.py:352
+msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:346
+#: common/models.py:354
msgid "Settings value"
msgstr ""
-#: common/models.py:380
+#: common/models.py:388
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:400
+#: common/models.py:408
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:411
+#: common/models.py:419
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:434
+#: common/models.py:442
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:553
+#: common/models.py:561
msgid "No group"
msgstr ""
-#: common/models.py:595
+#: common/models.py:603
msgid "Restart required"
msgstr ""
-#: common/models.py:596
+#: common/models.py:604
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:603
+#: common/models.py:611
msgid "InvenTree Instance Name"
msgstr ""
-#: common/models.py:605
+#: common/models.py:613
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:609
+#: common/models.py:617
msgid "Use instance name"
msgstr ""
-#: common/models.py:610
+#: common/models.py:618
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:616 company/models.py:100 company/models.py:101
+#: common/models.py:624 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr ""
-#: common/models.py:617
+#: common/models.py:625
msgid "Internal company name"
msgstr ""
-#: common/models.py:622
+#: common/models.py:630
msgid "Base URL"
msgstr ""
-#: common/models.py:623
+#: common/models.py:631
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:629
+#: common/models.py:637
msgid "Default Currency"
msgstr ""
-#: common/models.py:630
+#: common/models.py:638
msgid "Default currency"
msgstr ""
-#: common/models.py:636
+#: common/models.py:644
msgid "Download from URL"
msgstr ""
-#: common/models.py:637
+#: common/models.py:645
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:643 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:651 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
-#: common/models.py:644
+#: common/models.py:652
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:650
+#: common/models.py:658
msgid "IPN Regex"
msgstr ""
-#: common/models.py:651
+#: common/models.py:659
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:655
+#: common/models.py:663
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:656
+#: common/models.py:664
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:662
+#: common/models.py:670
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:663
+#: common/models.py:671
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:669
+#: common/models.py:677
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:670
+#: common/models.py:678
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:676
+#: common/models.py:684
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:677
+#: common/models.py:685
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:683
+#: common/models.py:691
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:684
+#: common/models.py:692
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:690
+#: common/models.py:698
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:691
+#: common/models.py:699
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:697 part/models.py:2482 report/models.py:187
+#: common/models.py:705 part/models.py:2489 report/models.py:187
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:422
msgid "Template"
msgstr "テンプレート"
-#: common/models.py:698
+#: common/models.py:706
msgid "Parts are templates by default"
msgstr "パーツはデフォルトのテンプレートです"
-#: common/models.py:704 part/models.py:919 templates/js/translated/bom.js:1068
+#: common/models.py:712 part/models.py:921 templates/js/translated/bom.js:1082
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:434
msgid "Assembly"
msgstr "アセンブリ"
-#: common/models.py:705
+#: common/models.py:713
msgid "Parts can be assembled from other components by default"
msgstr "パーツはデフォルトで他のコンポーネントから組み立てることができます"
-#: common/models.py:711 part/models.py:925
+#: common/models.py:719 part/models.py:927
#: templates/js/translated/table_filters.js:438
msgid "Component"
msgstr "コンポーネント"
-#: common/models.py:712
+#: common/models.py:720
msgid "Parts can be used as sub-components by default"
msgstr "パーツはデフォルトでサブコンポーネントとして使用できます"
-#: common/models.py:718 part/models.py:936
+#: common/models.py:726 part/models.py:938
msgid "Purchaseable"
msgstr "購入可能"
-#: common/models.py:719
+#: common/models.py:727
msgid "Parts are purchaseable by default"
msgstr "パーツはデフォルトで購入可能です"
-#: common/models.py:725 part/models.py:941
+#: common/models.py:733 part/models.py:943
#: templates/js/translated/table_filters.js:446
msgid "Salable"
msgstr ""
-#: common/models.py:726
+#: common/models.py:734
msgid "Parts are salable by default"
msgstr "パーツはデフォルトで販売可能です"
-#: common/models.py:732 part/models.py:931
+#: common/models.py:740 part/models.py:933
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
#: templates/js/translated/table_filters.js:450
msgid "Trackable"
msgstr "追跡可能"
-#: common/models.py:733
+#: common/models.py:741
msgid "Parts are trackable by default"
msgstr "パーツはデフォルトで追跡可能です"
-#: common/models.py:739 part/models.py:951
+#: common/models.py:747 part/models.py:953
#: part/templates/part/part_base.html:147
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr ""
-#: common/models.py:740
+#: common/models.py:748
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:746
+#: common/models.py:754
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:747
+#: common/models.py:755
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:753
+#: common/models.py:761
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:754
+#: common/models.py:762
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:765
+#: common/models.py:773
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:766
+#: common/models.py:774
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:772
+#: common/models.py:780
msgid "Show related parts"
msgstr ""
-#: common/models.py:773
+#: common/models.py:781
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:779
+#: common/models.py:787
msgid "Create initial stock"
msgstr ""
-#: common/models.py:780
+#: common/models.py:788
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:786
+#: common/models.py:794
msgid "Internal Prices"
msgstr ""
-#: common/models.py:787
+#: common/models.py:795
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:793
+#: common/models.py:801
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:794
+#: common/models.py:802
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:800
+#: common/models.py:808
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:801
+#: common/models.py:809
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:808
+#: common/models.py:816
msgid "Enable Reports"
msgstr ""
-#: common/models.py:809
+#: common/models.py:817
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:815 templates/stats.html:25
+#: common/models.py:823 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:816
+#: common/models.py:824
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:822
+#: common/models.py:830
msgid "Page Size"
msgstr ""
-#: common/models.py:823
+#: common/models.py:831
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:833
+#: common/models.py:841
msgid "Test Reports"
msgstr ""
-#: common/models.py:834
+#: common/models.py:842
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:840
+#: common/models.py:848
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:841
+#: common/models.py:849
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:847
+#: common/models.py:855
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:848
+#: common/models.py:856
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:854
+#: common/models.py:862
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:855
+#: common/models.py:863
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:857
+#: common/models.py:865
msgid "days"
msgstr ""
-#: common/models.py:862
+#: common/models.py:870
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:863
+#: common/models.py:871
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:869
+#: common/models.py:877
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:870
+#: common/models.py:878
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:876
-msgid "Group by Part"
-msgstr ""
-
-#: common/models.py:877
-msgid "Group stock items by part reference in table views"
-msgstr ""
-
-#: common/models.py:883
+#: common/models.py:884
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:884
+#: common/models.py:885
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:889
+#: common/models.py:890
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:890
+#: common/models.py:891
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:894
+#: common/models.py:895
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:895
+#: common/models.py:896
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:900
+#: common/models.py:901
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:901
+#: common/models.py:902
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:907
+#: common/models.py:908
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:908
+#: common/models.py:909
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:913
+#: common/models.py:914
msgid "Enable registration"
msgstr ""
-#: common/models.py:914
+#: common/models.py:915
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:919
+#: common/models.py:920
msgid "Enable SSO"
msgstr ""
-#: common/models.py:920
+#: common/models.py:921
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:925
+#: common/models.py:926
msgid "Email required"
msgstr ""
-#: common/models.py:926
+#: common/models.py:927
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:931
+#: common/models.py:932
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:932
+#: common/models.py:933
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:937
+#: common/models.py:938
msgid "Mail twice"
msgstr ""
-#: common/models.py:938
+#: common/models.py:939
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:943
+#: common/models.py:944
msgid "Password twice"
msgstr ""
-#: common/models.py:944
+#: common/models.py:945
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:949
+#: common/models.py:950
msgid "Group on signup"
msgstr ""
-#: common/models.py:950
+#: common/models.py:951
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:955
+#: common/models.py:956
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:956
+#: common/models.py:957
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:961
+#: common/models.py:964
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:962
+#: common/models.py:965
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:968
+#: common/models.py:971
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:969
+#: common/models.py:972
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:975
+#: common/models.py:978
msgid "Enable app integration"
msgstr ""
-#: common/models.py:976
+#: common/models.py:979
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:982
+#: common/models.py:985
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:983
+#: common/models.py:986
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1029
+#: common/models.py:992
+msgid "Enable event integration"
+msgstr ""
+
+#: common/models.py:993
+msgid "Enable plugins to respond to internal events"
+msgstr ""
+
+#: common/models.py:1008 common/models.py:1216
+msgid "Settings key (must be unique - case insensitive"
+msgstr ""
+
+#: common/models.py:1039
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1030
+#: common/models.py:1040
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1035
+#: common/models.py:1045
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1036
+#: common/models.py:1046
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1041
+#: common/models.py:1051
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1042
+#: common/models.py:1052
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1047
+#: common/models.py:1057
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1048
+#: common/models.py:1058
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1054
+#: common/models.py:1064
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1055
+#: common/models.py:1065
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1070
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1061
+#: common/models.py:1071
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1066
+#: common/models.py:1076
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1067
+#: common/models.py:1077
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1072
+#: common/models.py:1082
msgid "Show low stock"
msgstr ""
-#: common/models.py:1073
+#: common/models.py:1083
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1078
+#: common/models.py:1088
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1079
+#: common/models.py:1089
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1084
+#: common/models.py:1094
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1085
+#: common/models.py:1095
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1090
+#: common/models.py:1100
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1091
+#: common/models.py:1101
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1096
+#: common/models.py:1106
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1097
+#: common/models.py:1107
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1102
+#: common/models.py:1112
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1103
+#: common/models.py:1113
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1108
+#: common/models.py:1118
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1109
+#: common/models.py:1119
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1114
+#: common/models.py:1124
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1115
+#: common/models.py:1125
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1120
+#: common/models.py:1130
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1121
+#: common/models.py:1131
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1136
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1127
+#: common/models.py:1137
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1142
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1143
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1149
msgid "Inline label display"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1150
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1156
msgid "Inline report display"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1157
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1163
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1164
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1170
msgid "Search Show Stock"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1171
msgid "Display stock levels in search preview window"
msgstr ""
-#: common/models.py:1167
+#: common/models.py:1177
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1178
msgid "Hide inactive parts in search preview window"
msgstr ""
-#: common/models.py:1174
+#: common/models.py:1184
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1175
+#: common/models.py:1185
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1181
+#: common/models.py:1191
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1182
+#: common/models.py:1192
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1188
+#: common/models.py:1198
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1199
msgid "InvenTree navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1254 company/forms.py:43
+#: common/models.py:1264 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1261 company/serializers.py:264
+#: common/models.py:1271 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:909 templates/js/translated/part.js:1860
+#: templates/js/translated/part.js:915 templates/js/translated/part.js:1867
msgid "Price"
msgstr ""
-#: common/models.py:1262
+#: common/models.py:1272
msgid "Unit price at specified quantity"
msgstr ""
+#: common/models.py:1429 common/models.py:1568
+msgid "Endpoint"
+msgstr ""
+
+#: common/models.py:1430
+msgid "Endpoint at which this webhook is received"
+msgstr ""
+
+#: common/models.py:1439
+msgid "Name for this webhook"
+msgstr ""
+
+#: common/models.py:1444 part/models.py:948 plugin/models.py:46
+#: templates/js/translated/table_filters.js:34
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:295
+#: templates/js/translated/table_filters.js:417
+msgid "Active"
+msgstr ""
+
+#: common/models.py:1445
+msgid "Is this webhook active"
+msgstr ""
+
+#: common/models.py:1459
+msgid "Token"
+msgstr ""
+
+#: common/models.py:1460
+msgid "Token for access"
+msgstr ""
+
+#: common/models.py:1467
+msgid "Secret"
+msgstr ""
+
+#: common/models.py:1468
+msgid "Shared secret for HMAC"
+msgstr ""
+
+#: common/models.py:1535
+msgid "Message ID"
+msgstr ""
+
+#: common/models.py:1536
+msgid "Unique identifier for this message"
+msgstr ""
+
+#: common/models.py:1544
+msgid "Host"
+msgstr ""
+
+#: common/models.py:1545
+msgid "Host from which this message was received"
+msgstr ""
+
+#: common/models.py:1552
+msgid "Header"
+msgstr ""
+
+#: common/models.py:1553
+msgid "Header of this message"
+msgstr ""
+
+#: common/models.py:1559
+msgid "Body"
+msgstr ""
+
+#: common/models.py:1560
+msgid "Body of this message"
+msgstr ""
+
+#: common/models.py:1569
+msgid "Endpoint on which this message was received"
+msgstr ""
+
+#: common/models.py:1574
+msgid "Worked on"
+msgstr ""
+
+#: common/models.py:1575
+msgid "Was the work on this message finished?"
+msgstr ""
+
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
#: part/templates/part/bom_upload/upload_file.html:52
-#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
-#: part/views.py:764
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:213
+#: part/views.py:773
msgid "Upload File"
msgstr ""
#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
-#: part/views.py:765
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:214
+#: part/views.py:774
msgid "Match Fields"
msgstr ""
@@ -2315,7 +2404,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:838
+#: company/models.py:139 part/models.py:840
msgid "Image"
msgstr ""
@@ -2352,8 +2441,8 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:469
-#: stock/templates/stock/item_base.html:142
+#: company/models.py:320 company/models.py:535 stock/models.py:471
+#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:328
msgid "Base Part"
msgstr ""
@@ -2380,7 +2469,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:818 templates/js/translated/order.js:1038
-#: templates/js/translated/part.js:245 templates/js/translated/part.js:889
+#: templates/js/translated/part.js:245 templates/js/translated/part.js:895
msgid "MPN"
msgstr ""
@@ -2409,8 +2498,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1960 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:709 templates/js/translated/stock.js:1296
+#: stock/models.py:1988 templates/js/translated/company.js:647
+#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1304
msgid "Value"
msgstr ""
@@ -2418,10 +2507,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:913 part/models.py:2450
+#: company/models.py:429 part/models.py:915 part/models.py:2457
#: part/templates/part/part_base.html:288
-#: templates/InvenTree/settings/settings.html:284
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:715
+#: templates/InvenTree/settings/settings.html:287
+#: templates/js/translated/company.js:653 templates/js/translated/part.js:721
msgid "Units"
msgstr ""
@@ -2434,13 +2523,13 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:78
-#: company/templates/company/supplier_part.html:87 order/models.py:224
+#: company/templates/company/supplier_part.html:87 order/models.py:227
#: order/templates/order/order_base.html:112
-#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
-#: part/bom.py:247 stock/templates/stock/item_base.html:397
+#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237
+#: part/bom.py:265 stock/templates/stock/item_base.html:397
#: templates/js/translated/company.js:337
#: templates/js/translated/company.js:774 templates/js/translated/order.js:823
-#: templates/js/translated/part.js:215 templates/js/translated/part.js:857
+#: templates/js/translated/part.js:215 templates/js/translated/part.js:863
#: templates/js/translated/table_filters.js:393
msgid "Supplier"
msgstr ""
@@ -2450,8 +2539,8 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:1025
-#: templates/js/translated/part.js:226 templates/js/translated/part.js:875
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1025
+#: templates/js/translated/part.js:226 templates/js/translated/part.js:881
msgid "SKU"
msgstr ""
@@ -2472,22 +2561,22 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:119
-#: part/models.py:2641 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2648 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:580 part/models.py:1779
+#: company/models.py:580 part/models.py:1781
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1779
+#: company/models.py:580 part/models.py:1781
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:493 stock/templates/stock/item_base.html:338
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1791
+#: stock/models.py:495 stock/templates/stock/item_base.html:338
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1799
msgid "Packaging"
msgstr ""
@@ -2495,7 +2584,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1781
+#: company/models.py:584 part/models.py:1783
msgid "multiple"
msgstr ""
@@ -2554,12 +2643,12 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:83 order/models.py:547
-#: order/templates/order/sales_order_base.html:115 stock/models.py:512
-#: stock/models.py:513 stock/serializers.py:625
+#: company/templates/company/company_base.html:83 order/models.py:552
+#: order/templates/order/sales_order_base.html:115 stock/models.py:514
+#: stock/models.py:515 stock/serializers.py:626
#: stock/templates/stock/item_base.html:290
#: templates/js/translated/company.js:329 templates/js/translated/order.js:1240
-#: templates/js/translated/stock.js:2452
+#: templates/js/translated/stock.js:2610
#: templates/js/translated/table_filters.js:397
msgid "Customer"
msgstr ""
@@ -2590,7 +2679,7 @@ msgstr "新しいサプライヤー・パーツを作成"
#: company/templates/company/detail.html:20
#: company/templates/company/manufacturer_part.html:118
-#: part/templates/part/detail.html:336
+#: part/templates/part/detail.html:353
msgid "New Supplier Part"
msgstr "新しいサプライヤー・パーツ"
@@ -2598,8 +2687,8 @@ msgstr "新しいサプライヤー・パーツ"
#: company/templates/company/detail.html:79
#: company/templates/company/manufacturer_part.html:127
#: company/templates/company/manufacturer_part.html:156
-#: part/templates/part/category.html:171 part/templates/part/detail.html:345
-#: part/templates/part/detail.html:374
+#: part/templates/part/category.html:171 part/templates/part/detail.html:362
+#: part/templates/part/detail.html:391
msgid "Options"
msgstr ""
@@ -2627,7 +2716,7 @@ msgstr "メーカー・パーツ"
msgid "Create new manufacturer part"
msgstr "新しいメーカー・パーツを作成"
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:364
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:381
msgid "New Manufacturer Part"
msgstr "新しいメーカ―・パーツ"
@@ -2641,7 +2730,7 @@ msgstr ""
#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:68 part/templates/part/part_sidebar.html:33
+#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
@@ -2663,7 +2752,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:91 part/templates/part/part_sidebar.html:37
+#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:41
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
@@ -2691,13 +2780,13 @@ msgstr ""
#: company/templates/company/detail.html:384
#: company/templates/company/manufacturer_part.html:215
-#: part/templates/part/detail.html:418
+#: part/templates/part/detail.html:435
msgid "Delete Supplier Parts?"
msgstr ""
#: company/templates/company/detail.html:385
#: company/templates/company/manufacturer_part.html:216
-#: part/templates/part/detail.html:419
+#: part/templates/part/detail.html:436
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2714,7 +2803,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:34
#: company/templates/company/supplier_part.html:159
-#: part/templates/part/detail.html:71 part/templates/part/part_base.html:76
+#: part/templates/part/detail.html:88 part/templates/part/part_base.html:76
msgid "Order part"
msgstr "パーツの注文"
@@ -2735,34 +2824,34 @@ msgstr "内部パーツ"
#: company/templates/company/manufacturer_part.html:114
#: company/templates/company/supplier_part.html:15 company/views.py:49
-#: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163
+#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:163
#: templates/InvenTree/search.html:188 templates/navbar.html:45
msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
-#: part/templates/part/detail.html:347
+#: part/templates/part/detail.html:364
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
#: company/templates/company/manufacturer_part.html:158
#: company/templates/company/manufacturer_part.html:254
-#: part/templates/part/detail.html:347 part/templates/part/detail.html:376
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:393
#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31
-#: users/models.py:210
+#: users/models.py:212
msgid "Delete"
msgstr ""
#: company/templates/company/manufacturer_part.html:143
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:17
-#: part/templates/part/detail.html:170 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:187 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:147
-#: part/templates/part/detail.html:175
+#: part/templates/part/detail.html:192
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
@@ -2773,7 +2862,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:191
-#: part/templates/part/detail.html:862
+#: part/templates/part/detail.html:892
msgid "Add Parameter"
msgstr ""
@@ -2802,9 +2891,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:477
+#: company/templates/company/supplier_part.html:24 stock/models.py:479
#: stock/templates/stock/item_base.html:402
-#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1748
+#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1756
msgid "Supplier Part"
msgstr ""
@@ -2830,7 +2919,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:167
-#: templates/js/translated/stock.js:360
+#: templates/js/translated/stock.js:368
msgid "New Stock Item"
msgstr ""
@@ -2840,7 +2929,7 @@ msgid "Supplier Part Orders"
msgstr ""
#: company/templates/company/supplier_part.html:160
-#: part/templates/part/detail.html:72
+#: part/templates/part/detail.html:89
msgid "Order Part"
msgstr ""
@@ -2851,7 +2940,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1619
+#: part/templates/part/prices.html:271 part/views.py:1628
msgid "Add Price Break"
msgstr ""
@@ -2859,11 +2948,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1681
+#: company/templates/company/supplier_part.html:224 part/views.py:1690
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1667
+#: company/templates/company/supplier_part.html:238 part/views.py:1676
msgid "Edit Price Break"
msgstr ""
@@ -2881,10 +2970,10 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:150
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/bom.js:328 templates/js/translated/part.js:489
-#: templates/js/translated/part.js:624 templates/js/translated/part.js:1118
-#: templates/js/translated/part.js:1279 templates/js/translated/stock.js:927
-#: templates/js/translated/stock.js:1580 templates/navbar.html:28
+#: templates/js/translated/bom.js:340 templates/js/translated/part.js:495
+#: templates/js/translated/part.js:630 templates/js/translated/part.js:1125
+#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:935
+#: templates/js/translated/stock.js:1588 templates/navbar.html:28
msgid "Stock"
msgstr ""
@@ -2907,8 +2996,8 @@ msgstr ""
#: stock/templates/stock/location.html:151
#: stock/templates/stock/location.html:163
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2351
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2509
+#: templates/stats.html:105 templates/stats.html:114 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2937,20 +3026,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:584
+#: company/views.py:129 part/views.py:593
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:616
+#: company/views.py:158 part/views.py:625
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:623
+#: company/views.py:165 part/views.py:632
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:632
+#: company/views.py:174 part/views.py:641
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3036,282 +3125,282 @@ msgstr ""
msgid "Cancel order"
msgstr ""
-#: order/models.py:122
+#: order/models.py:125
msgid "Order description"
msgstr ""
-#: order/models.py:124
+#: order/models.py:127
msgid "Link to external page"
msgstr ""
-#: order/models.py:132
+#: order/models.py:135
msgid "Created By"
msgstr ""
-#: order/models.py:139
+#: order/models.py:142
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:144
+#: order/models.py:147
msgid "Order notes"
msgstr ""
-#: order/models.py:211 order/models.py:537
+#: order/models.py:214 order/models.py:542
msgid "Order reference"
msgstr ""
-#: order/models.py:216 order/models.py:552
+#: order/models.py:219 order/models.py:557
msgid "Purchase order status"
msgstr ""
-#: order/models.py:225
+#: order/models.py:228
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:228 order/templates/order/order_base.html:118
+#: order/models.py:231 order/templates/order/order_base.html:118
#: templates/js/translated/order.js:832
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:228
+#: order/models.py:231
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:235
+#: order/models.py:238
msgid "received by"
msgstr ""
-#: order/models.py:240
+#: order/models.py:243
msgid "Issue Date"
msgstr ""
-#: order/models.py:241
+#: order/models.py:244
msgid "Date order was issued"
msgstr ""
-#: order/models.py:246
+#: order/models.py:249
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:247
+#: order/models.py:250
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:253
+#: order/models.py:256
msgid "Date order was completed"
msgstr ""
-#: order/models.py:282
+#: order/models.py:285
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:411
-msgid "Quantity must be an integer"
-msgstr ""
-
-#: order/models.py:415
+#: order/models.py:420
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:548
+#: order/models.py:553
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:554
+#: order/models.py:559
msgid "Customer Reference "
msgstr ""
-#: order/models.py:554
+#: order/models.py:559
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:559
+#: order/models.py:564
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:562 order/models.py:1028
+#: order/models.py:567 order/models.py:1048
#: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429
msgid "Shipment Date"
msgstr ""
-#: order/models.py:569
+#: order/models.py:574
msgid "shipped by"
msgstr ""
-#: order/models.py:635
+#: order/models.py:640
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:639
+#: order/models.py:644
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:642
+#: order/models.py:647
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:645
+#: order/models.py:650
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:797
+#: order/models.py:806
msgid "Item quantity"
msgstr ""
-#: order/models.py:803
+#: order/models.py:812
msgid "Line item reference"
msgstr ""
-#: order/models.py:805
+#: order/models.py:814
msgid "Line item notes"
msgstr ""
-#: order/models.py:835 order/models.py:926 order/models.py:1022
-#: templates/js/translated/order.js:1820
+#: order/models.py:842
+msgid "Supplier part must match supplier"
+msgstr ""
+
+#: order/models.py:855 order/models.py:946 order/models.py:1042
+#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2271
msgid "Order"
msgstr ""
-#: order/models.py:836 order/templates/order/order_base.html:9
+#: order/models.py:856 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:352
-#: templates/js/translated/order.js:801 templates/js/translated/part.js:832
-#: templates/js/translated/stock.js:1725 templates/js/translated/stock.js:2433
+#: templates/js/translated/order.js:801 templates/js/translated/part.js:838
+#: templates/js/translated/stock.js:1733 templates/js/translated/stock.js:2591
msgid "Purchase Order"
msgstr ""
-#: order/models.py:857
+#: order/models.py:877
msgid "Supplier part"
msgstr ""
-#: order/models.py:864 order/templates/order/order_base.html:163
+#: order/models.py:884 order/templates/order/order_base.html:163
#: templates/js/translated/order.js:589 templates/js/translated/order.js:1118
-#: templates/js/translated/part.js:904 templates/js/translated/part.js:930
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:937
#: templates/js/translated/table_filters.js:317
msgid "Received"
msgstr ""
-#: order/models.py:865
+#: order/models.py:885
msgid "Number of items received"
msgstr ""
-#: order/models.py:872 part/templates/part/prices.html:176 stock/models.py:606
+#: order/models.py:892 part/templates/part/prices.html:176 stock/models.py:608
#: stock/serializers.py:170 stock/templates/stock/item_base.html:359
-#: templates/js/translated/stock.js:1779
+#: templates/js/translated/stock.js:1787
msgid "Purchase Price"
msgstr ""
-#: order/models.py:873
+#: order/models.py:893
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:881
+#: order/models.py:901
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:936 part/templates/part/part_pricing.html:112
+#: order/models.py:956 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:937
+#: order/models.py:957
msgid "Unit sale price"
msgstr ""
-#: order/models.py:942
+#: order/models.py:962
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1029
+#: order/models.py:1049
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1036
+#: order/models.py:1056
msgid "Checked By"
msgstr ""
-#: order/models.py:1037
+#: order/models.py:1057
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1045
+#: order/models.py:1065
msgid "Shipment number"
msgstr ""
-#: order/models.py:1052
+#: order/models.py:1072
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1059
+#: order/models.py:1079
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1060
+#: order/models.py:1080
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1070
+#: order/models.py:1090
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1073
+#: order/models.py:1093
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1149 order/models.py:1151
+#: order/models.py:1171 order/models.py:1173
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1155
+#: order/models.py:1177
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1157
+#: order/models.py:1179
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1160
+#: order/models.py:1182
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1164
+#: order/models.py:1186
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:1170 order/serializers.py:734
+#: order/models.py:1192 order/serializers.py:740
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1173
+#: order/models.py:1195
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1174
+#: order/models.py:1196
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1182
+#: order/models.py:1204
msgid "Line"
msgstr ""
-#: order/models.py:1190 order/serializers.py:825 order/serializers.py:953
-#: templates/js/translated/model_renderers.js:251
+#: order/models.py:1212 order/serializers.py:831 order/serializers.py:959
+#: templates/js/translated/model_renderers.js:285
msgid "Shipment"
msgstr ""
-#: order/models.py:1191
+#: order/models.py:1213
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1203
+#: order/models.py:1225
msgid "Item"
msgstr ""
-#: order/models.py:1204
+#: order/models.py:1226
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1207
+#: order/models.py:1229
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3319,7 +3408,7 @@ msgstr ""
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:211 order/serializers.py:790
+#: order/serializers.py:211 order/serializers.py:796
msgid "Line Item"
msgstr ""
@@ -3355,39 +3444,39 @@ msgstr ""
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:581
+#: order/serializers.py:587
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:649
+#: order/serializers.py:655
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:699 order/serializers.py:802
+#: order/serializers.py:705 order/serializers.py:808
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:721
+#: order/serializers.py:727
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:815
+#: order/serializers.py:821
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:839 order/serializers.py:964
+#: order/serializers.py:845 order/serializers.py:970
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:842 order/serializers.py:967
+#: order/serializers.py:848 order/serializers.py:973
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:894
+#: order/serializers.py:900
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:904
+#: order/serializers.py:910
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3441,6 +3530,7 @@ msgstr ""
#: order/templates/order/order_base.html:94
#: order/templates/order/sales_order_base.html:89
+#: templates/js/translated/stock.js:2327
msgid "Order Status"
msgstr ""
@@ -3538,7 +3628,7 @@ msgstr ""
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/build.js:300 templates/js/translated/build.js:1311
#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488
-#: templates/js/translated/stock.js:593 templates/js/translated/stock.js:761
+#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769
msgid "Remove row"
msgstr ""
@@ -3729,7 +3819,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:48
-#: templates/js/translated/bom.js:720 templates/js/translated/build.js:1243
+#: templates/js/translated/bom.js:732 templates/js/translated/build.js:1243
msgid "Actions"
msgstr ""
@@ -3832,447 +3922,448 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:125 part/models.py:81 part/models.py:847
+#: part/bom.py:125 part/models.py:83 part/models.py:849
#: part/templates/part/category.html:108 part/templates/part/part_base.html:338
msgid "Default Location"
msgstr ""
-#: part/bom.py:126 part/templates/part/part_base.html:185
+#: part/bom.py:126 templates/email/low_stock_notification.html:17
+msgid "Total Stock"
+msgstr ""
+
+#: part/bom.py:127 part/templates/part/part_base.html:185
msgid "Available Stock"
msgstr ""
-#: part/forms.py:85
+#: part/bom.py:128 part/templates/part/part_base.html:203
+#: templates/js/translated/part.js:1301
+msgid "On Order"
+msgstr ""
+
+#: part/forms.py:84
msgid "Select part category"
msgstr ""
-#: part/forms.py:122
+#: part/forms.py:121
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:126
+#: part/forms.py:125
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:146
+#: part/forms.py:145
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:82
+#: part/models.py:84
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:85
+#: part/models.py:87
msgid "Default keywords"
msgstr ""
-#: part/models.py:85
+#: part/models.py:87
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:95 part/models.py:2526 part/templates/part/category.html:15
+#: part/models.py:97 part/models.py:2533 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:96 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/stats.html:84
+#: part/models.py:98 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/stats.html:96
#: users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:358 part/templates/part/cat_link.html:3
+#: part/models.py:360 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:17 part/templates/part/category.html:133
#: part/templates/part/category.html:153
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:37
-#: templates/js/translated/part.js:1656 templates/navbar.html:21
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+#: templates/js/translated/part.js:1663 templates/navbar.html:21
+#: templates/stats.html:92 templates/stats.html:101 users/models.py:41
msgid "Parts"
msgstr "パーツ"
-#: part/models.py:450
+#: part/models.py:452
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:500 part/models.py:512
+#: part/models.py:502 part/models.py:514
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:642
+#: part/models.py:644
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:646
+#: part/models.py:648
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:651
+#: part/models.py:653
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:746
+#: part/models.py:748
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:771
+#: part/models.py:773
msgid "Part name"
msgstr ""
-#: part/models.py:778
+#: part/models.py:780
msgid "Is Template"
msgstr ""
-#: part/models.py:779
+#: part/models.py:781
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:789
+#: part/models.py:791
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:790
+#: part/models.py:792
msgid "Variant Of"
msgstr ""
-#: part/models.py:796
+#: part/models.py:798
msgid "Part description"
msgstr ""
-#: part/models.py:801 part/templates/part/category.html:86
+#: part/models.py:803 part/templates/part/category.html:86
#: part/templates/part/part_base.html:302
msgid "Keywords"
msgstr ""
-#: part/models.py:802
+#: part/models.py:804
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:809 part/models.py:2276 part/models.py:2525
+#: part/models.py:811 part/models.py:2283 part/models.py:2532
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:183
-#: templates/js/translated/part.js:1261
+#: templates/InvenTree/settings/settings.html:186
+#: templates/js/translated/part.js:1268
msgid "Category"
msgstr ""
-#: part/models.py:810
+#: part/models.py:812
msgid "Part category"
msgstr ""
-#: part/models.py:815 part/templates/part/part_base.html:274
-#: templates/js/translated/part.js:612 templates/js/translated/part.js:1214
-#: templates/js/translated/stock.js:1552
+#: part/models.py:817 part/templates/part/part_base.html:274
+#: templates/js/translated/part.js:618 templates/js/translated/part.js:1221
+#: templates/js/translated/stock.js:1560
msgid "IPN"
msgstr ""
-#: part/models.py:816
+#: part/models.py:818
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:822
+#: part/models.py:824
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:823 part/templates/part/part_base.html:281
-#: report/models.py:200 templates/js/translated/part.js:616
+#: part/models.py:825 part/templates/part/part_base.html:281
+#: report/models.py:200 templates/js/translated/part.js:622
msgid "Revision"
msgstr ""
-#: part/models.py:845
+#: part/models.py:847
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:892 part/templates/part/part_base.html:347
+#: part/models.py:894 part/templates/part/part_base.html:347
msgid "Default Supplier"
msgstr ""
-#: part/models.py:893
+#: part/models.py:895
msgid "Default supplier part"
msgstr ""
-#: part/models.py:900
+#: part/models.py:902
msgid "Default Expiry"
msgstr ""
-#: part/models.py:901
+#: part/models.py:903
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:906 part/templates/part/part_base.html:196
+#: part/models.py:908 part/templates/part/part_base.html:196
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:907
+#: part/models.py:909
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:914
+#: part/models.py:916
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:920
+#: part/models.py:922
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:926
+#: part/models.py:928
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:932
+#: part/models.py:934
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:937
+#: part/models.py:939
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:942
+#: part/models.py:944
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:946 plugin/models.py:46
-#: templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:96
-#: templates/js/translated/table_filters.js:295
-#: templates/js/translated/table_filters.js:417
-msgid "Active"
-msgstr ""
-
-#: part/models.py:947
+#: part/models.py:949
msgid "Is this part active?"
msgstr ""
-#: part/models.py:952
+#: part/models.py:954
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:957
+#: part/models.py:959
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:960
+#: part/models.py:962
msgid "BOM checksum"
msgstr ""
-#: part/models.py:960
+#: part/models.py:962
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:963
+#: part/models.py:965
msgid "BOM checked by"
msgstr ""
-#: part/models.py:965
+#: part/models.py:967
msgid "BOM checked date"
msgstr ""
-#: part/models.py:969
+#: part/models.py:971
msgid "Creation User"
msgstr ""
-#: part/models.py:1781
+#: part/models.py:1783
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2326
+#: part/models.py:2333
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2343
+#: part/models.py:2350
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2363 templates/js/translated/part.js:1707
-#: templates/js/translated/stock.js:1276
+#: part/models.py:2370 templates/js/translated/part.js:1714
+#: templates/js/translated/stock.js:1284
msgid "Test Name"
msgstr ""
-#: part/models.py:2364
+#: part/models.py:2371
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2376
msgid "Test Description"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2377
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2375 templates/js/translated/part.js:1716
+#: part/models.py:2382 templates/js/translated/part.js:1723
#: templates/js/translated/table_filters.js:281
msgid "Required"
msgstr ""
-#: part/models.py:2376
+#: part/models.py:2383
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2381 templates/js/translated/part.js:1724
+#: part/models.py:2388 templates/js/translated/part.js:1731
msgid "Requires Value"
msgstr ""
-#: part/models.py:2382
+#: part/models.py:2389
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2387 templates/js/translated/part.js:1731
+#: part/models.py:2394 templates/js/translated/part.js:1738
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2388
+#: part/models.py:2395
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2399
+#: part/models.py:2406
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2435
+#: part/models.py:2442
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2443
+#: part/models.py:2450
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2450
+#: part/models.py:2457
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2480
+#: part/models.py:2487
msgid "Parent Part"
msgstr ""
-#: part/models.py:2482 part/models.py:2531 part/models.py:2532
-#: templates/InvenTree/settings/settings.html:178
+#: part/models.py:2489 part/models.py:2538 part/models.py:2539
+#: templates/InvenTree/settings/settings.html:181
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2484
+#: part/models.py:2491
msgid "Data"
msgstr ""
-#: part/models.py:2484
+#: part/models.py:2491
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2536 templates/InvenTree/settings/settings.html:187
+#: part/models.py:2543 templates/InvenTree/settings/settings.html:190
msgid "Default Value"
msgstr ""
-#: part/models.py:2537
+#: part/models.py:2544
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2614
+#: part/models.py:2621
msgid "Select parent part"
msgstr ""
-#: part/models.py:2622
+#: part/models.py:2629
msgid "Sub part"
msgstr ""
-#: part/models.py:2623
+#: part/models.py:2630
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2629
+#: part/models.py:2636
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2631 templates/js/translated/bom.js:566
-#: templates/js/translated/bom.js:640
+#: part/models.py:2638 templates/js/translated/bom.js:578
+#: templates/js/translated/bom.js:652
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2638
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2634
+#: part/models.py:2641
msgid "Overage"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2642
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2638
+#: part/models.py:2645
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2641
+#: part/models.py:2648
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2643
+#: part/models.py:2650
msgid "Checksum"
msgstr ""
-#: part/models.py:2643
+#: part/models.py:2650
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2647 templates/js/translated/bom.js:657
+#: part/models.py:2654 templates/js/translated/bom.js:669
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2648
+#: part/models.py:2655
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2653 templates/js/translated/bom.js:649
+#: part/models.py:2660 templates/js/translated/bom.js:661
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2654
+#: part/models.py:2661
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2739 stock/models.py:355
+#: part/models.py:2746 stock/models.py:357
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2748 part/models.py:2750
+#: part/models.py:2755 part/models.py:2757
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2879
+#: part/models.py:2886
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2908
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2920
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2928
msgid "Substitute part"
msgstr ""
-#: part/models.py:2932
+#: part/models.py:2939
msgid "Part 1"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2943
msgid "Part 2"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2943
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2968
+#: part/models.py:2975
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4327,7 +4418,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:253
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:270
msgid "BOM actions"
msgstr ""
@@ -4499,7 +4590,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:348
msgid "Duplicate Part"
msgstr ""
@@ -4533,145 +4624,149 @@ msgid "Showing stock for all variants of %(full_name)s"
msgstr ""
#: part/templates/part/detail.html:43
+msgid "Part Stock Allocations"
+msgstr ""
+
+#: part/templates/part/detail.html:60
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:48
+#: part/templates/part/detail.html:65
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:105
+#: part/templates/part/detail.html:122
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:142
+#: part/templates/part/detail.html:159
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:146
+#: part/templates/part/detail.html:163
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:147
+#: part/templates/part/detail.html:164
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:174
+#: part/templates/part/detail.html:191
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:45
+#: part/templates/part/detail.html:228 part/templates/part/part_sidebar.html:49
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:215 part/templates/part/detail.html:216
+#: part/templates/part/detail.html:232 part/templates/part/detail.html:233
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:236 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:253 part/templates/part/part_sidebar.html:17
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:241
+#: part/templates/part/detail.html:258
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:245 templates/js/translated/bom.js:70
+#: part/templates/part/detail.html:262 templates/js/translated/bom.js:70
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:247
+#: part/templates/part/detail.html:264
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:257
+#: part/templates/part/detail.html:274
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:259 templates/js/translated/part.js:272
+#: part/templates/part/detail.html:276 templates/js/translated/part.js:272
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:278
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:266
+#: part/templates/part/detail.html:283
msgid "New BOM Item"
msgstr ""
-#: part/templates/part/detail.html:267
+#: part/templates/part/detail.html:284
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:280
+#: part/templates/part/detail.html:297
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:297
+#: part/templates/part/detail.html:314
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:322
+#: part/templates/part/detail.html:339
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:332
+#: part/templates/part/detail.html:349
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:360
+#: part/templates/part/detail.html:377
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:393
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:558
+#: part/templates/part/detail.html:575
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:559
+#: part/templates/part/detail.html:576
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:608
+#: part/templates/part/detail.html:625
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:652
+#: part/templates/part/detail.html:682
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:660
+#: part/templates/part/detail.html:690
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:755
+#: part/templates/part/detail.html:785
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:812
+#: part/templates/part/detail.html:842
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:925
+#: part/templates/part/detail.html:955
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:937
+#: part/templates/part/detail.html:967
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:949
+#: part/templates/part/detail.html:979
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1038
+#: part/templates/part/detail.html:1068
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4786,7 +4881,7 @@ msgstr ""
#: templates/js/translated/company.js:508
#: templates/js/translated/company.js:765
#: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:527 templates/js/translated/part.js:604
+#: templates/js/translated/part.js:533 templates/js/translated/part.js:610
msgid "Inactive"
msgstr ""
@@ -4805,10 +4900,6 @@ msgstr ""
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1294
-msgid "On Order"
-msgstr ""
-
#: part/templates/part/part_base.html:210 templates/InvenTree/index.html:178
msgid "Required for Build Orders"
msgstr ""
@@ -4821,12 +4912,12 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:678
+#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:690
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1125
-#: templates/js/translated/part.js:1298
+#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1132
+#: templates/js/translated/part.js:1305
msgid "Building"
msgstr ""
@@ -4878,7 +4969,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:632
+#: templates/js/translated/bom.js:644
msgid "No supplier pricing available"
msgstr ""
@@ -4920,7 +5011,12 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/templates/part/part_sidebar.html:41
+#: part/templates/part/part_sidebar.html:31
+#: stock/templates/stock/stock_sidebar.html:8
+msgid "Allocations"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:45
msgid "Test Templates"
msgstr ""
@@ -4993,7 +5089,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:626
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:638
msgid "Supplier Cost"
msgstr ""
@@ -5015,7 +5111,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1690
+#: part/templates/part/prices.html:215 part/views.py:1699
msgid "Add Internal Price Break"
msgstr ""
@@ -5035,9 +5131,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:588
-#: templates/js/translated/part.js:491 templates/js/translated/part.js:1115
-#: templates/js/translated/part.js:1302
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:600
+#: templates/js/translated/part.js:497 templates/js/translated/part.js:1122
+#: templates/js/translated/part.js:1309
msgid "No Stock"
msgstr ""
@@ -5054,116 +5150,116 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:116
+#: part/templatetags/inventree_extras.py:125
msgid "Unknown database"
msgstr ""
-#: part/views.py:92
+#: part/views.py:93
msgid "Set Part Category"
msgstr ""
-#: part/views.py:142
+#: part/views.py:143
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:214
+#: part/views.py:215
msgid "Match References"
msgstr ""
-#: part/views.py:502
+#: part/views.py:511
msgid "None"
msgstr ""
-#: part/views.py:561
+#: part/views.py:570
msgid "Part QR Code"
msgstr ""
-#: part/views.py:663
+#: part/views.py:672
msgid "Select Part Image"
msgstr ""
-#: part/views.py:689
+#: part/views.py:698
msgid "Updated part image"
msgstr ""
-#: part/views.py:692
+#: part/views.py:701
msgid "Part image not found"
msgstr ""
-#: part/views.py:766
+#: part/views.py:775
msgid "Match Parts"
msgstr ""
-#: part/views.py:1101
+#: part/views.py:1110
msgid "Export Bill of Materials"
msgstr ""
-#: part/views.py:1150
+#: part/views.py:1159
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1157
+#: part/views.py:1166
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1166
+#: part/views.py:1175
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1315
+#: part/views.py:1324
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1325
+#: part/views.py:1334
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1332
+#: part/views.py:1341
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1391 templates/js/translated/part.js:315
+#: part/views.py:1400 templates/js/translated/part.js:315
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1429
+#: part/views.py:1438
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1435
+#: part/views.py:1444
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1444
+#: part/views.py:1453
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1545
+#: part/views.py:1554
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1601
+#: part/views.py:1610
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1623
+#: part/views.py:1632
msgid "Added new price break"
msgstr ""
-#: part/views.py:1699
+#: part/views.py:1708
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1707
+#: part/views.py:1716
msgid "Delete Internal Price Break"
msgstr ""
-#: plugin/integration.py:124
+#: plugin/integration.py:138
msgid "No author found"
msgstr ""
-#: plugin/integration.py:136
+#: plugin/integration.py:152
msgid "No date found"
msgstr ""
@@ -5191,7 +5287,7 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:195
+#: plugin/models.py:199
msgid "Plugin"
msgstr ""
@@ -5357,12 +5453,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:517 stock/templates/stock/item_base.html:156
+#: stock/models.py:519 stock/templates/stock/item_base.html:156
#: templates/js/translated/build.js:293 templates/js/translated/build.js:697
#: templates/js/translated/build.js:1073
#: templates/js/translated/model_renderers.js:95
#: templates/js/translated/order.js:99 templates/js/translated/order.js:1945
-#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:415
+#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:423
msgid "Serial Number"
msgstr ""
@@ -5371,19 +5467,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:1948
+#: stock/models.py:1976
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:1954
+#: stock/models.py:1982
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:49
+#: templates/InvenTree/settings/plugin.html:50
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2367
+#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2525
msgid "Date"
msgstr ""
@@ -5396,23 +5492,27 @@ msgid "Fail"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:123
-#: stock/templates/stock/stock_sidebar.html:12
+#: stock/templates/stock/stock_sidebar.html:16
msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:578 templates/js/translated/stock.js:748
-#: templates/js/translated/stock.js:2627
+#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756
+#: templates/js/translated/stock.js:2785
msgid "Serial"
msgstr ""
-#: stock/api.py:478
+#: stock/api.py:476
msgid "Quantity is required"
msgstr ""
-#: stock/forms.py:77 stock/forms.py:251 stock/models.py:574
+#: stock/api.py:483
+msgid "Valid part must be supplied"
+msgstr ""
+
+#: stock/forms.py:77 stock/forms.py:251 stock/models.py:576
#: stock/templates/stock/item_base.html:193
-#: templates/js/translated/stock.js:1701
+#: templates/js/translated/stock.js:1709
msgid "Expiry Date"
msgstr ""
@@ -5460,228 +5560,228 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:60 stock/models.py:611
+#: stock/models.py:62 stock/models.py:613
#: stock/templates/stock/item_base.html:416
msgid "Owner"
msgstr ""
-#: stock/models.py:61 stock/models.py:612
+#: stock/models.py:63 stock/models.py:614
msgid "Select Owner"
msgstr ""
-#: stock/models.py:336
+#: stock/models.py:338
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:372
+#: stock/models.py:374
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:382 stock/models.py:391
+#: stock/models.py:384 stock/models.py:393
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:383
+#: stock/models.py:385
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:405
+#: stock/models.py:407
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:413
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:418
+#: stock/models.py:420
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:461
+#: stock/models.py:463
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:470
+#: stock/models.py:472
msgid "Base part"
msgstr ""
-#: stock/models.py:478
+#: stock/models.py:480
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:484 stock/templates/stock/location.html:16
+#: stock/models.py:486 stock/templates/stock/location.html:16
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:487
+#: stock/models.py:489
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:494
+#: stock/models.py:496
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:500 stock/templates/stock/item_base.html:298
+#: stock/models.py:502 stock/templates/stock/item_base.html:298
msgid "Installed In"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:505
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:521
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:535
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:537
+#: stock/models.py:539
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:546
+#: stock/models.py:548
msgid "Source Build"
msgstr ""
-#: stock/models.py:548
+#: stock/models.py:550
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:559
+#: stock/models.py:561
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:562
+#: stock/models.py:564
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:568
+#: stock/models.py:570
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:575
+#: stock/models.py:577
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:588
+#: stock/models.py:590
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:588
+#: stock/models.py:590
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:598 stock/templates/stock/item.html:111
+#: stock/models.py:600 stock/templates/stock/item.html:128
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:607
+#: stock/models.py:609
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1068
+#: stock/models.py:1096
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1074
+#: stock/models.py:1102
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1080
+#: stock/models.py:1108
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1083
+#: stock/models.py:1111
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1086
+#: stock/models.py:1114
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1093
+#: stock/models.py:1121
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1164
+#: stock/models.py:1192
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1167
+#: stock/models.py:1195
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1170
+#: stock/models.py:1198
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1173
+#: stock/models.py:1201
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1176
+#: stock/models.py:1204
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1179
+#: stock/models.py:1207
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1186 stock/serializers.py:774
+#: stock/models.py:1214 stock/serializers.py:775
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1190
+#: stock/models.py:1218
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1194
+#: stock/models.py:1222
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1198
+#: stock/models.py:1226
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1369
+#: stock/models.py:1397
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1868
+#: stock/models.py:1896
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1925
+#: stock/models.py:1953
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1931
+#: stock/models.py:1959
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1949
+#: stock/models.py:1977
msgid "Test name"
msgstr ""
-#: stock/models.py:1955 templates/js/translated/table_filters.js:271
+#: stock/models.py:1983 templates/js/translated/table_filters.js:271
msgid "Test result"
msgstr ""
-#: stock/models.py:1961
+#: stock/models.py:1989
msgid "Test output value"
msgstr ""
-#: stock/models.py:1968
+#: stock/models.py:1996
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1974
+#: stock/models.py:2002
msgid "Test notes"
msgstr ""
@@ -5706,7 +5806,7 @@ msgstr ""
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:326 stock/serializers.py:731 stock/serializers.py:972
+#: stock/serializers.py:326 stock/serializers.py:732 stock/serializers.py:973
msgid "Destination stock location"
msgstr ""
@@ -5718,63 +5818,63 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:588
+#: stock/serializers.py:589
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:592
+#: stock/serializers.py:593
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:597
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:626
+#: stock/serializers.py:627
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:632
+#: stock/serializers.py:633
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:640
+#: stock/serializers.py:641
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:650 stock/serializers.py:880
+#: stock/serializers.py:651 stock/serializers.py:881
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:738
+#: stock/serializers.py:739
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:743
+#: stock/serializers.py:744
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:744
+#: stock/serializers.py:745
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:749
+#: stock/serializers.py:750
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:750
+#: stock/serializers.py:751
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:760
+#: stock/serializers.py:761
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:842
+#: stock/serializers.py:843
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:870
+#: stock/serializers.py:871
msgid "Stock transaction notes"
msgstr ""
@@ -5787,47 +5887,51 @@ msgid "New Entry"
msgstr ""
#: stock/templates/stock/item.html:48
-msgid "Child Stock Items"
-msgstr ""
-
-#: stock/templates/stock/item.html:55
-msgid "This stock item does not have any child items"
+msgid "Stock Item Allocations"
msgstr ""
#: stock/templates/stock/item.html:64
-#: stock/templates/stock/stock_sidebar.html:8
-msgid "Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:57
-msgid "Test Report"
+msgid "Child Stock Items"
msgstr ""
#: stock/templates/stock/item.html:72
+msgid "This stock item does not have any child items"
+msgstr ""
+
+#: stock/templates/stock/item.html:81
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:57
+msgid "Test Report"
+msgstr ""
+
+#: stock/templates/stock/item.html:89
msgid "Delete Test Data"
msgstr ""
-#: stock/templates/stock/item.html:76
+#: stock/templates/stock/item.html:93
msgid "Add Test Data"
msgstr ""
-#: stock/templates/stock/item.html:133
+#: stock/templates/stock/item.html:150
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:137 stock/views.py:482
+#: stock/templates/stock/item.html:154 stock/views.py:482
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304
+#: stock/templates/stock/item.html:309 stock/templates/stock/item.html:334
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:324
+#: stock/templates/stock/item.html:354
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:338
+#: stock/templates/stock/item.html:368
msgid "Delete Test Result"
msgstr ""
@@ -5952,7 +6056,7 @@ msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:206
-#: templates/js/translated/stock.js:1714
+#: templates/js/translated/stock.js:1722
msgid "Last Updated"
msgstr ""
@@ -6111,7 +6215,7 @@ msgid "Sublocations"
msgstr ""
#: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164
-#: templates/stats.html:97 users/models.py:42
+#: templates/stats.html:109 users/models.py:42
msgid "Stock Locations"
msgstr ""
@@ -6135,7 +6239,7 @@ msgstr ""
msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/stock_sidebar.html:16
+#: stock/templates/stock/stock_sidebar.html:20
msgid "Child Items"
msgstr ""
@@ -6164,7 +6268,7 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:162
+#: stock/views.py:162 templates/js/translated/stock.js:139
msgid "Edit Stock Location"
msgstr ""
@@ -6204,7 +6308,7 @@ msgstr ""
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:727 templates/js/translated/stock.js:1066
+#: stock/views.py:727 templates/js/translated/stock.js:1074
msgid "Confirm stock adjustment"
msgstr ""
@@ -6212,7 +6316,7 @@ msgstr ""
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:324
+#: stock/views.py:760 templates/js/translated/stock.js:332
msgid "Edit Stock Item"
msgstr ""
@@ -6224,7 +6328,7 @@ msgstr ""
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1153 templates/js/translated/stock.js:304
+#: stock/views.py:1153 templates/js/translated/stock.js:312
msgid "Duplicate Stock Item"
msgstr ""
@@ -6268,6 +6372,18 @@ msgstr ""
msgid "The requested page does not exist"
msgstr ""
+#: templates/500.html:5 templates/500.html:11
+msgid "Internal Server Error"
+msgstr ""
+
+#: templates/500.html:14
+msgid "The InvenTree server raised an internal error"
+msgstr ""
+
+#: templates/500.html:15
+msgid "Refer to the error log in the admin interface for further details"
+msgstr ""
+
#: templates/503.html:10 templates/503.html:35
msgid "Site is in Maintenance"
msgstr ""
@@ -6390,7 +6506,7 @@ msgid "Signup"
msgstr ""
#: templates/InvenTree/settings/mixins/settings.html:5
-#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:118
+#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113
msgid "Settings"
msgstr ""
@@ -6431,43 +6547,43 @@ msgstr ""
msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage."
msgstr ""
-#: templates/InvenTree/settings/plugin.html:32
+#: templates/InvenTree/settings/plugin.html:33
msgid "Plugins"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:37
+#: templates/InvenTree/settings/plugin.html:38
#: templates/js/translated/plugin.js:15
msgid "Install Plugin"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:46 templates/navbar.html:111
+#: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111
#: users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin.html:49
#: templates/InvenTree/settings/plugin_settings.html:28
msgid "Author"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:50
+#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin_settings.html:43
msgid "Version"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:91
+#: templates/InvenTree/settings/plugin.html:92
msgid "Inactive plugins"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:114
+#: templates/InvenTree/settings/plugin.html:115
msgid "Plugin Error Stack"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:123
+#: templates/InvenTree/settings/plugin.html:124
msgid "Stage"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:125
+#: templates/InvenTree/settings/plugin.html:126
msgid "Message"
msgstr ""
@@ -6555,37 +6671,37 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:75
+#: templates/InvenTree/settings/settings.html:78
msgid "Edit Plugin Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:77
+#: templates/InvenTree/settings/settings.html:80
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:79
+#: templates/InvenTree/settings/settings.html:82
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:168
+#: templates/InvenTree/settings/settings.html:171
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:190
-#: templates/InvenTree/settings/settings.html:289
+#: templates/InvenTree/settings/settings.html:193
+#: templates/InvenTree/settings/settings.html:292
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:191
-#: templates/InvenTree/settings/settings.html:290
+#: templates/InvenTree/settings/settings.html:194
+#: templates/InvenTree/settings/settings.html:293
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:269
+#: templates/InvenTree/settings/settings.html:272
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:273
+#: templates/InvenTree/settings/settings.html:276
msgid "ID"
msgstr ""
@@ -6763,124 +6879,105 @@ msgstr ""
msgid "Remove multifactor"
msgstr ""
-#: templates/InvenTree/settings/user.html:219
+#: templates/InvenTree/settings/user.html:220
+msgid "Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:226
+msgid "Log out active sessions (except this one)"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:227
+msgid "Log Out Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:236
+msgid "unknown on unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:237
+msgid "unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:241
+msgid "IP Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:242
+msgid "Device"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:243
+msgid "Last Activity"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:252
+#, python-format
+msgid "%(time)s ago (this session)"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:254
+#, python-format
+msgid "%(time)s ago"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:266
+msgid "Do you really want to remove the selected email address?"
+msgstr ""
+
#: templates/InvenTree/settings/user_display.html:25
msgid "Theme Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:227
#: templates/InvenTree/settings/user_display.html:35
msgid "Select theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:237
#: templates/InvenTree/settings/user_display.html:46
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:246
#: templates/InvenTree/settings/user_display.html:54
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:254
#: templates/InvenTree/settings/user_display.html:63
msgid "Select language"
msgstr ""
-#: templates/InvenTree/settings/user.html:270
#: templates/InvenTree/settings/user_display.html:79
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:272
#: templates/InvenTree/settings/user_display.html:81
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:279
#: templates/InvenTree/settings/user_display.html:88
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:281
#: templates/InvenTree/settings/user_display.html:91
msgid "Some languages are not complete"
msgstr ""
-#: templates/InvenTree/settings/user.html:283
#: templates/InvenTree/settings/user_display.html:93
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user.html:285
+#: templates/InvenTree/settings/user_display.html:95
+msgid "and hidden."
+msgstr ""
+
#: templates/InvenTree/settings/user_display.html:95
msgid "Show them too"
msgstr ""
-#: templates/InvenTree/settings/user.html:292
#: templates/InvenTree/settings/user_display.html:101
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user.html:293
-#, python-format
-msgid "Native language translation of the\n"
-" InvenTree web application is community contributed via crowdin. Contributions are\n"
-" welcomed and encouraged."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:302
-msgid "Active Sessions"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:308
-msgid "Log out active sessions (except this one)"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:309
-msgid "Log Out Active Sessions"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:318
-msgid "unknown on unknown"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:319
-msgid "unknown"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:323
-msgid "IP Address"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:324
-msgid "Device"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:325
-msgid "Last Activity"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:334
-#, python-format
-msgid "%(time)s ago (this session)"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:336
-#, python-format
-msgid "%(time)s ago"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:348
-msgid "Do you really want to remove the selected email address?"
-msgstr ""
-
-#: templates/InvenTree/settings/user_display.html:95
-msgid "and hidden."
-msgstr ""
-
#: templates/InvenTree/settings/user_display.html:102
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
@@ -6899,9 +6996,9 @@ msgid "InvenTree Version Information"
msgstr ""
#: templates/about.html:11 templates/about.html:105
-#: templates/js/translated/bom.js:395 templates/js/translated/modals.js:53
-#: templates/js/translated/modals.js:573 templates/js/translated/modals.js:667
-#: templates/js/translated/modals.js:970 templates/modals.html:15
+#: templates/js/translated/bom.js:407 templates/js/translated/modals.js:53
+#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
+#: templates/js/translated/modals.js:983 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -7178,13 +7275,13 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1103
+#: templates/js/translated/bom.js:1117
msgid "Required Quantity"
msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:579 templates/js/translated/build.js:1189
+#: templates/js/translated/bom.js:591 templates/js/translated/build.js:1189
#: templates/js/translated/build.js:1810
#: templates/js/translated/table_filters.js:178
msgid "Available"
@@ -7208,10 +7305,6 @@ msgstr ""
msgid "Click on the following link to view this part"
msgstr ""
-#: templates/email/low_stock_notification.html:17
-msgid "Total Stock"
-msgstr ""
-
#: templates/email/low_stock_notification.html:19
msgid "Minimum Quantity"
msgstr ""
@@ -7232,11 +7325,11 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1040
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1053
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1041
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1054
msgid "No response from the InvenTree server"
msgstr ""
@@ -7248,27 +7341,27 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1063
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1051
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1064
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1068
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1056
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1069
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1073
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1061
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1074
msgid "The requested resource could not be located on the server"
msgstr ""
@@ -7280,11 +7373,11 @@ msgstr ""
msgid "HTTP method not allowed at URL"
msgstr ""
-#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1065
+#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1078
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1079
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -7353,7 +7446,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:140
-#: templates/js/translated/modals.js:1030
+#: templates/js/translated/modals.js:1043
msgid "Invalid server response"
msgstr ""
@@ -7381,7 +7474,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1018
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026
msgid "Remove stock item"
msgstr ""
@@ -7428,12 +7521,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73
-#: templates/js/translated/order.js:369 templates/js/translated/stock.js:510
+#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74
-#: templates/js/translated/order.js:370 templates/js/translated/stock.js:511
+#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519
msgid "Select file format"
msgstr ""
@@ -7489,87 +7582,87 @@ msgstr ""
msgid "Remove substitute part"
msgstr ""
-#: templates/js/translated/bom.js:340
-msgid "Select and add a new variant item using the input below"
+#: templates/js/translated/bom.js:352
+msgid "Select and add a new substitute part using the input below"
msgstr ""
-#: templates/js/translated/bom.js:351
+#: templates/js/translated/bom.js:363
msgid "Are you sure you wish to remove this substitute part link?"
msgstr ""
-#: templates/js/translated/bom.js:357
+#: templates/js/translated/bom.js:369
msgid "Remove Substitute Part"
msgstr ""
-#: templates/js/translated/bom.js:396
+#: templates/js/translated/bom.js:408
msgid "Add Substitute"
msgstr ""
-#: templates/js/translated/bom.js:397
+#: templates/js/translated/bom.js:409
msgid "Edit BOM Item Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:516
+#: templates/js/translated/bom.js:528
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:520 templates/js/translated/build.js:1171
+#: templates/js/translated/bom.js:532 templates/js/translated/build.js:1171
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:525
+#: templates/js/translated/bom.js:537
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:597
+#: templates/js/translated/bom.js:609
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:612
+#: templates/js/translated/bom.js:624
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:619
+#: templates/js/translated/bom.js:631
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:668 templates/js/translated/bom.js:757
+#: templates/js/translated/bom.js:680 templates/js/translated/bom.js:769
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:728
+#: templates/js/translated/bom.js:740
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:730
+#: templates/js/translated/bom.js:742
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:732
+#: templates/js/translated/bom.js:744
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:734 templates/js/translated/bom.js:908
+#: templates/js/translated/bom.js:746 templates/js/translated/bom.js:920
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:736 templates/js/translated/bom.js:891
+#: templates/js/translated/bom.js:748 templates/js/translated/bom.js:903
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:830 templates/js/translated/build.js:915
+#: templates/js/translated/bom.js:842 templates/js/translated/build.js:915
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:886
+#: templates/js/translated/bom.js:898
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:1086 templates/js/translated/build.js:1155
+#: templates/js/translated/bom.js:1100 templates/js/translated/build.js:1155
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1108
+#: templates/js/translated/bom.js:1122
msgid "Inherited from parent BOM"
msgstr ""
@@ -7725,9 +7818,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1206
-#: templates/js/translated/part.js:1617 templates/js/translated/stock.js:1512
-#: templates/js/translated/stock.js:2321
+#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1213
+#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1520
+#: templates/js/translated/stock.js:2479
msgid "Select"
msgstr ""
@@ -7735,7 +7828,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2540
+#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2698
msgid "No user information"
msgstr ""
@@ -7808,34 +7901,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:511
-#: templates/js/translated/part.js:596
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:517
+#: templates/js/translated/part.js:602
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:515
-#: templates/js/translated/part.js:600
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:521
+#: templates/js/translated/part.js:606
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:690
+#: templates/js/translated/company.js:631 templates/js/translated/part.js:696
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:732
+#: templates/js/translated/company.js:668 templates/js/translated/part.js:738
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:733
+#: templates/js/translated/company.js:669 templates/js/translated/part.js:739
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:750
+#: templates/js/translated/company.js:688 templates/js/translated/part.js:756
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:762
+#: templates/js/translated/company.js:699 templates/js/translated/part.js:768
msgid "Delete Parameter"
msgstr ""
@@ -7844,12 +7937,12 @@ msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:420
+#: templates/js/translated/filters.js:429
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:421
+#: templates/js/translated/filters.js:430
msgid "false"
msgstr ""
@@ -7869,7 +7962,7 @@ msgstr ""
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:329
+#: templates/js/translated/filters.js:338
msgid "Create filter"
msgstr ""
@@ -7898,20 +7991,20 @@ msgstr ""
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1080 templates/modals.html:19
+#: templates/js/translated/forms.js:1082 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1471
+#: templates/js/translated/forms.js:1487
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1675
+#: templates/js/translated/forms.js:1691
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1895
+#: templates/js/translated/forms.js:1930
msgid "Clear input"
msgstr ""
@@ -7924,7 +8017,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1042
+#: templates/js/translated/stock.js:1050
msgid "Select Stock Items"
msgstr ""
@@ -7974,12 +8067,12 @@ msgid "Select Label Template"
msgstr ""
#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
-#: templates/js/translated/modals.js:599
+#: templates/js/translated/modals.js:610
msgid "Cancel"
msgstr ""
#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:666 templates/js/translated/modals.js:969
+#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:982
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
@@ -7988,47 +8081,47 @@ msgstr ""
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:381
+#: templates/js/translated/modals.js:392
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:540
+#: templates/js/translated/modals.js:551
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:598
+#: templates/js/translated/modals.js:609
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:655
+#: templates/js/translated/modals.js:666
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:921
+#: templates/js/translated/modals.js:934
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:921
+#: templates/js/translated/modals.js:934
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:946
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1030
+#: templates/js/translated/modals.js:1043
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1045
+#: templates/js/translated/modals.js:1058
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1046
+#: templates/js/translated/modals.js:1059
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1069
+#: templates/js/translated/modals.js:1082
msgid "Error requesting form data"
msgstr ""
@@ -8052,23 +8145,24 @@ msgstr ""
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:236
+#: templates/js/translated/model_renderers.js:249
+#: templates/js/translated/model_renderers.js:270
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:253
+#: templates/js/translated/model_renderers.js:287
msgid "Shipment ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:273
+#: templates/js/translated/model_renderers.js:307
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:310
+#: templates/js/translated/model_renderers.js:344
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:339
+#: templates/js/translated/model_renderers.js:373
msgid "Supplier Part ID"
msgstr ""
@@ -8116,7 +8210,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2123
+#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2131
msgid "Stock Status"
msgstr ""
@@ -8140,7 +8234,7 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:790 templates/js/translated/part.js:803
+#: templates/js/translated/order.js:790 templates/js/translated/part.js:809
msgid "No purchase orders found"
msgstr ""
@@ -8165,7 +8259,7 @@ msgid "Total"
msgstr ""
#: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163
-#: templates/js/translated/part.js:1834 templates/js/translated/part.js:2045
+#: templates/js/translated/part.js:1841 templates/js/translated/part.js:2052
msgid "Unit Price"
msgstr ""
@@ -8181,7 +8275,7 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1166 templates/js/translated/part.js:935
+#: templates/js/translated/order.js:1166 templates/js/translated/part.js:942
msgid "Receive line item"
msgstr ""
@@ -8250,7 +8344,7 @@ msgid "Delete Stock Allocation"
msgstr ""
#: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048
-#: templates/js/translated/stock.js:1428
+#: templates/js/translated/stock.js:1436
msgid "Shipped to customer"
msgstr ""
@@ -8378,144 +8472,148 @@ msgstr ""
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:412
+#: templates/js/translated/part.js:351
+msgid "Create Part Variant"
+msgstr ""
+
+#: templates/js/translated/part.js:418
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:414
+#: templates/js/translated/part.js:420
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:419
+#: templates/js/translated/part.js:425
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:421
+#: templates/js/translated/part.js:427
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:438
+#: templates/js/translated/part.js:444
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:448
+#: templates/js/translated/part.js:454
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:451
+#: templates/js/translated/part.js:457
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:475
+#: templates/js/translated/part.js:481
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:503 templates/js/translated/part.js:588
+#: templates/js/translated/part.js:509 templates/js/translated/part.js:594
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:507 templates/js/translated/part.js:592
+#: templates/js/translated/part.js:513 templates/js/translated/part.js:598
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:519
+#: templates/js/translated/part.js:525
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:529
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:638
+#: templates/js/translated/part.js:644
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1005
+#: templates/js/translated/part.js:1012
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1029
+#: templates/js/translated/part.js:1036
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1096 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:1363
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1266
+#: templates/js/translated/part.js:1273
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1289
+#: templates/js/translated/part.js:1296
#: templates/js/translated/table_filters.js:430
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1380 templates/js/translated/part.js:1552
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559
+#: templates/js/translated/stock.js:2440
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1396
+#: templates/js/translated/part.js:1403
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1571 templates/js/translated/stock.js:2301
+#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2459
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1635
+#: templates/js/translated/part.js:1642
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1649 templates/js/translated/stock.js:2345
+#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2503
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1693
+#: templates/js/translated/part.js:1700
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1744 templates/js/translated/stock.js:1234
+#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1242
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1745 templates/js/translated/stock.js:1235
+#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1243
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1751
+#: templates/js/translated/part.js:1758
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1773
+#: templates/js/translated/part.js:1780
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1787
+#: templates/js/translated/part.js:1794
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1812
+#: templates/js/translated/part.js:1819
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1867
+#: templates/js/translated/part.js:1874
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1868
+#: templates/js/translated/part.js:1875
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1969
+#: templates/js/translated/part.js:1976
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1988
+#: templates/js/translated/part.js:1995
msgid "Single Price Difference"
msgstr ""
@@ -8589,340 +8687,344 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:73
+#: templates/js/translated/stock.js:74
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:173
+#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:181
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/stock.js:93 templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:94 templates/js/translated/stock.js:183
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/stock.js:101
+#: templates/js/translated/stock.js:102
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:110
+#: templates/js/translated/stock.js:111
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:146
+#: templates/js/translated/stock.js:154
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:186
+#: templates/js/translated/stock.js:194
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:225
+#: templates/js/translated/stock.js:233
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:231
+#: templates/js/translated/stock.js:239
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:374
+#: templates/js/translated/stock.js:382
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:387
+#: templates/js/translated/stock.js:395
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:412
+#: templates/js/translated/stock.js:420
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:416 templates/js/translated/stock.js:417
+#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:433
+#: templates/js/translated/stock.js:441
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:453
+#: templates/js/translated/stock.js:461
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:462
+#: templates/js/translated/stock.js:470
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:507
+#: templates/js/translated/stock.js:515
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:518
+#: templates/js/translated/stock.js:526
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:527
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:628
+#: templates/js/translated/stock.js:636
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:629
+#: templates/js/translated/stock.js:637
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:706
+#: templates/js/translated/stock.js:714
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:707
+#: templates/js/translated/stock.js:715
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:709
+#: templates/js/translated/stock.js:717
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:710
+#: templates/js/translated/stock.js:718
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:796
+#: templates/js/translated/stock.js:804
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:797
+#: templates/js/translated/stock.js:805
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:892
+#: templates/js/translated/stock.js:900
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:893
+#: templates/js/translated/stock.js:901
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:899
+#: templates/js/translated/stock.js:907
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:900
+#: templates/js/translated/stock.js:908
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:904
+#: templates/js/translated/stock.js:912
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:905
+#: templates/js/translated/stock.js:913
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:909
+#: templates/js/translated/stock.js:917
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:910 users/models.py:206
+#: templates/js/translated/stock.js:918 users/models.py:208
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:914 templates/stock_table.html:58
+#: templates/js/translated/stock.js:922 templates/stock_table.html:58
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1003
+#: templates/js/translated/stock.js:1011
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1003
+#: templates/js/translated/stock.js:1011
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1043
+#: templates/js/translated/stock.js:1051
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1201
+#: templates/js/translated/stock.js:1209
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1211
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1208
+#: templates/js/translated/stock.js:1216
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1230
+#: templates/js/translated/stock.js:1238
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1256
+#: templates/js/translated/stock.js:1264
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1313
+#: templates/js/translated/stock.js:1321
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1420
+#: templates/js/translated/stock.js:1428
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1424
+#: templates/js/translated/stock.js:1432
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1432
+#: templates/js/translated/stock.js:1440
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1438
+#: templates/js/translated/stock.js:1446
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1596
+#: templates/js/translated/stock.js:1604
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1601
+#: templates/js/translated/stock.js:1609
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1612
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/stock.js:1616
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1610
+#: templates/js/translated/stock.js:1618
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1616
+#: templates/js/translated/stock.js:1624
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1626
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1620
+#: templates/js/translated/stock.js:1628
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1625
+#: templates/js/translated/stock.js:1633
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1632
+#: templates/js/translated/stock.js:1640
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1634
+#: templates/js/translated/stock.js:1642
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1644
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1640
+#: templates/js/translated/stock.js:1648
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1698
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1763
+#: templates/js/translated/stock.js:1771
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1801
+#: templates/js/translated/stock.js:1809
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1822 templates/js/translated/stock.js:1870
+#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:1878
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1910
+#: templates/js/translated/stock.js:1918
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1937
+#: templates/js/translated/stock.js:1945
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1939
+#: templates/js/translated/stock.js:1947
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:2138
+#: templates/js/translated/stock.js:2146
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2152
+#: templates/js/translated/stock.js:2160
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2153
+#: templates/js/translated/stock.js:2161
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2377
+#: templates/js/translated/stock.js:2340
+msgid "Allocated Quantity"
+msgstr ""
+
+#: templates/js/translated/stock.js:2535
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:2399
+#: templates/js/translated/stock.js:2557
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2424
+#: templates/js/translated/stock.js:2582
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2443
+#: templates/js/translated/stock.js:2601
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2462
+#: templates/js/translated/stock.js:2620
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2480
+#: templates/js/translated/stock.js:2638
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2503
+#: templates/js/translated/stock.js:2661
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2511
+#: templates/js/translated/stock.js:2669
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2552
+#: templates/js/translated/stock.js:2710
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2553
+#: templates/js/translated/stock.js:2711
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2604
+#: templates/js/translated/stock.js:2762
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2655
+#: templates/js/translated/stock.js:2813
msgid "Uninstall Stock Item"
msgstr ""
@@ -9194,11 +9296,11 @@ msgstr ""
msgid "Sell"
msgstr ""
-#: templates/navbar.html:113
+#: templates/navbar.html:114
msgid "Logout"
msgstr ""
-#: templates/navbar.html:115
+#: templates/navbar.html:116
msgid "Login"
msgstr ""
@@ -9246,31 +9348,43 @@ msgstr ""
msgid "Server is deployed using docker"
msgstr ""
-#: templates/stats.html:40
-msgid "Server status"
+#: templates/stats.html:39
+msgid "Plugin Support"
msgstr ""
#: templates/stats.html:43
-msgid "Healthy"
+msgid "Plugin support enabled"
msgstr ""
#: templates/stats.html:45
-msgid "Issues detected"
+msgid "Plugin support disabled"
msgstr ""
#: templates/stats.html:52
-msgid "Background Worker"
+msgid "Server status"
msgstr ""
#: templates/stats.html:55
+msgid "Healthy"
+msgstr ""
+
+#: templates/stats.html:57
+msgid "Issues detected"
+msgstr ""
+
+#: templates/stats.html:64
+msgid "Background Worker"
+msgstr ""
+
+#: templates/stats.html:67
msgid "Background worker not running"
msgstr ""
-#: templates/stats.html:63
+#: templates/stats.html:75
msgid "Email Settings"
msgstr ""
-#: templates/stats.html:66
+#: templates/stats.html:78
msgid "Email settings not configured"
msgstr ""
@@ -9366,35 +9480,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:193
+#: users/models.py:195
msgid "Permission set"
msgstr ""
-#: users/models.py:201
+#: users/models.py:203
msgid "Group"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
msgid "View"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
msgid "Permission to view items"
msgstr ""
-#: users/models.py:206
+#: users/models.py:208
msgid "Permission to add items"
msgstr ""
-#: users/models.py:208
+#: users/models.py:210
msgid "Change"
msgstr ""
-#: users/models.py:208
+#: users/models.py:210
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:210
+#: users/models.py:212
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/ko/LC_MESSAGES/django.po b/InvenTree/locale/ko/LC_MESSAGES/django.po
index 92723e867d..0d87fb8280 100644
--- a/InvenTree/locale/ko/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ko/LC_MESSAGES/django.po
@@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-01-10 03:54+0000\n"
-"PO-Revision-Date: 2022-01-10 03:57\n"
+"POT-Creation-Date: 2022-01-29 00:17+0000\n"
+"PO-Revision-Date: 2022-01-29 01:10\n"
"Last-Translator: \n"
"Language-Team: Korean\n"
"Language: ko_KR\n"
@@ -18,15 +18,15 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 138\n"
-#: InvenTree/api.py:64
+#: InvenTree/api.py:55
msgid "API endpoint not found"
msgstr ""
-#: InvenTree/api.py:110
+#: InvenTree/api.py:101
msgid "No action specified"
msgstr ""
-#: InvenTree/api.py:124
+#: InvenTree/api.py:116
msgid "No matching action found"
msgstr ""
@@ -50,11 +50,11 @@ msgstr ""
#: InvenTree/forms.py:174
msgid "Enter password"
-msgstr ""
+msgstr "비밀번호를 입력하세요"
#: InvenTree/forms.py:175
msgid "Enter new password"
-msgstr ""
+msgstr "새로운 비밀번호를 입력하세요"
#: InvenTree/forms.py:182
msgid "Confirm password"
@@ -74,47 +74,47 @@ msgstr ""
#: InvenTree/forms.py:240
msgid "Email address confirmation"
-msgstr ""
+msgstr "이메일 주소 확인"
#: InvenTree/forms.py:260
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:437
+#: InvenTree/helpers.py:439
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:444 order/models.py:279 order/models.py:420
+#: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425
#: stock/views.py:1231
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:447
+#: InvenTree/helpers.py:449
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:469 InvenTree/helpers.py:472 InvenTree/helpers.py:475
-#: InvenTree/helpers.py:500
+#: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477
+#: InvenTree/helpers.py:502
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:510
+#: InvenTree/helpers.py:512
#, python-brace-format
msgid "Invalid group {group}"
msgstr ""
-#: InvenTree/helpers.py:516
+#: InvenTree/helpers.py:518
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:522
+#: InvenTree/helpers.py:524
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:526
+#: InvenTree/helpers.py:528
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
@@ -127,27 +127,27 @@ msgstr ""
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:132 stock/models.py:1967
+#: InvenTree/models.py:132 stock/models.py:1995
#: templates/js/translated/attachment.js:119
msgid "Attachment"
-msgstr ""
+msgstr "첨부파일"
#: InvenTree/models.py:133
msgid "Select file to attach"
-msgstr ""
+msgstr "첨부할 파일을 선택하세요"
#: InvenTree/models.py:139 company/models.py:131 company/models.py:348
-#: company/models.py:564 order/models.py:124 part/models.py:828
+#: company/models.py:564 order/models.py:127 part/models.py:830
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1317
+#: templates/js/translated/company.js:829 templates/js/translated/part.js:1324
msgid "Link"
-msgstr ""
+msgstr "링크"
-#: InvenTree/models.py:140 build/models.py:330 part/models.py:829
-#: stock/models.py:527
+#: InvenTree/models.py:140 build/models.py:332 part/models.py:831
+#: stock/models.py:529
msgid "Link to external URL"
-msgstr ""
+msgstr "외부 URL로 링크"
#: InvenTree/models.py:143 templates/js/translated/attachment.js:163
msgid "Comment"
@@ -157,20 +157,21 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213
-#: common/models.py:1214 part/models.py:2258 part/models.py:2278
+#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1223
+#: common/models.py:1224 common/models.py:1452 common/models.py:1453
+#: part/models.py:2265 part/models.py:2285
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2534
+#: templates/js/translated/stock.js:2692
msgid "User"
-msgstr ""
+msgstr "사용자"
#: InvenTree/models.py:153
msgid "upload date"
-msgstr ""
+msgstr "업로드 날짜"
#: InvenTree/models.py:176
msgid "Filename must not be empty"
-msgstr ""
+msgstr "파일명은 비워둘 수 없습니다"
#: InvenTree/models.py:199
msgid "Invalid attachment directory"
@@ -179,7 +180,7 @@ msgstr ""
#: InvenTree/models.py:209
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
-msgstr ""
+msgstr "파일명에 허용되지 않은 문자 '{c}'가 포함되어 있습니다"
#: InvenTree/models.py:212
msgid "Filename missing extension"
@@ -187,150 +188,150 @@ msgstr ""
#: InvenTree/models.py:219
msgid "Attachment with this filename already exists"
-msgstr ""
+msgstr "같은 이름의 첨부파일이 이미 존재합니다"
#: InvenTree/models.py:226
msgid "Error renaming file"
-msgstr ""
+msgstr "파일 이름 바꾸기 오류"
#: InvenTree/models.py:261
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:277 InvenTree/models.py:278 company/models.py:415
-#: label/models.py:112 part/models.py:772 part/models.py:2442
-#: plugin/models.py:40 report/models.py:181
+#: InvenTree/models.py:277 InvenTree/models.py:278 common/models.py:1438
+#: company/models.py:415 label/models.py:112 part/models.py:774
+#: part/models.py:2449 plugin/models.py:40 report/models.py:181
#: templates/InvenTree/settings/mixins/urls.html:13
-#: templates/InvenTree/settings/plugin.html:47
-#: templates/InvenTree/settings/plugin.html:124
+#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin.html:125
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:279
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:561
-#: templates/js/translated/part.js:700 templates/js/translated/part.js:1624
-#: templates/js/translated/stock.js:2327
+#: templates/InvenTree/settings/settings.html:282
+#: templates/js/translated/company.js:641 templates/js/translated/part.js:567
+#: templates/js/translated/part.js:706 templates/js/translated/part.js:1631
+#: templates/js/translated/stock.js:2485
msgid "Name"
-msgstr ""
+msgstr "이름"
-#: InvenTree/models.py:284 build/models.py:207
+#: InvenTree/models.py:284 build/models.py:209
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:73 label/models.py:119
-#: order/models.py:122 part/models.py:795 part/templates/part/category.html:74
+#: order/models.py:125 part/models.py:797 part/templates/part/category.html:74
#: part/templates/part/part_base.html:163
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:93
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:327 templates/js/translated/bom.js:540
+#: templates/js/translated/bom.js:339 templates/js/translated/bom.js:552
#: templates/js/translated/build.js:1682 templates/js/translated/company.js:345
#: templates/js/translated/company.js:551
#: templates/js/translated/company.js:840 templates/js/translated/order.js:836
#: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258
-#: templates/js/translated/part.js:620 templates/js/translated/part.js:992
-#: templates/js/translated/part.js:1077 templates/js/translated/part.js:1247
-#: templates/js/translated/part.js:1643 templates/js/translated/part.js:1712
-#: templates/js/translated/stock.js:1569 templates/js/translated/stock.js:2339
-#: templates/js/translated/stock.js:2384
+#: templates/js/translated/part.js:626 templates/js/translated/part.js:999
+#: templates/js/translated/part.js:1084 templates/js/translated/part.js:1254
+#: templates/js/translated/part.js:1650 templates/js/translated/part.js:1719
+#: templates/js/translated/stock.js:1577 templates/js/translated/stock.js:2314
+#: templates/js/translated/stock.js:2497 templates/js/translated/stock.js:2542
msgid "Description"
-msgstr ""
+msgstr "설명"
#: InvenTree/models.py:285
msgid "Description (optional)"
-msgstr ""
+msgstr "설명 (선택 사항)"
#: InvenTree/models.py:293
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:65 part/models.py:2727
+#: InvenTree/serializers.py:65 part/models.py:2734
msgid "Must be a valid number"
msgstr ""
#: InvenTree/serializers.py:299
msgid "Filename"
-msgstr ""
+msgstr "파일명"
+
+#: InvenTree/settings.py:661
+msgid "German"
+msgstr "독일어"
+
+#: InvenTree/settings.py:662
+msgid "Greek"
+msgstr "그리스어"
#: InvenTree/settings.py:663
-msgid "German"
-msgstr ""
+msgid "English"
+msgstr "영어"
#: InvenTree/settings.py:664
-msgid "Greek"
-msgstr ""
+msgid "Spanish"
+msgstr "스페인어"
#: InvenTree/settings.py:665
-msgid "English"
-msgstr ""
+msgid "Spanish (Mexican)"
+msgstr "스페인어 (멕시코)"
#: InvenTree/settings.py:666
-msgid "Spanish"
-msgstr ""
+msgid "French"
+msgstr "프랑스어"
#: InvenTree/settings.py:667
-msgid "Spanish (Mexican)"
-msgstr ""
+msgid "Hebrew"
+msgstr "히브리어"
#: InvenTree/settings.py:668
-msgid "French"
-msgstr ""
+msgid "Italian"
+msgstr "이탈리아어"
#: InvenTree/settings.py:669
-msgid "Hebrew"
-msgstr ""
+msgid "Japanese"
+msgstr "일본어"
#: InvenTree/settings.py:670
-msgid "Italian"
-msgstr ""
+msgid "Korean"
+msgstr "한국어"
#: InvenTree/settings.py:671
-msgid "Japanese"
-msgstr ""
+msgid "Dutch"
+msgstr "네덜란드어"
#: InvenTree/settings.py:672
-msgid "Korean"
-msgstr ""
+msgid "Norwegian"
+msgstr "노르웨이어"
#: InvenTree/settings.py:673
-msgid "Dutch"
-msgstr ""
+msgid "Polish"
+msgstr "폴란드어"
#: InvenTree/settings.py:674
-msgid "Norwegian"
-msgstr ""
+msgid "Portugese"
+msgstr "포르투갈어"
#: InvenTree/settings.py:675
-msgid "Polish"
-msgstr ""
+msgid "Russian"
+msgstr "러시아어"
#: InvenTree/settings.py:676
-msgid "Portugese"
-msgstr ""
+msgid "Swedish"
+msgstr "스웨덴어"
#: InvenTree/settings.py:677
-msgid "Russian"
-msgstr ""
+msgid "Thai"
+msgstr "태국어"
#: InvenTree/settings.py:678
-msgid "Swedish"
-msgstr ""
+msgid "Turkish"
+msgstr "터키어"
#: InvenTree/settings.py:679
-msgid "Thai"
-msgstr ""
+msgid "Vietnamese"
+msgstr "베트남어"
#: InvenTree/settings.py:680
-msgid "Turkish"
-msgstr ""
-
-#: InvenTree/settings.py:681
-msgid "Vietnamese"
-msgstr ""
-
-#: InvenTree/settings.py:682
msgid "Chinese"
-msgstr ""
+msgstr "중국어"
#: InvenTree/status.py:94
msgid "Background worker check failed"
@@ -374,7 +375,7 @@ msgstr ""
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:143 order/models.py:941
+#: InvenTree/status_codes.py:143 order/models.py:961
#: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255
msgid "Shipped"
msgstr ""
@@ -455,7 +456,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2064
+#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2072
msgid "Merged stock items"
msgstr ""
@@ -541,58 +542,58 @@ msgstr ""
#: InvenTree/views.py:883 templates/navbar.html:126
msgid "System Information"
-msgstr ""
+msgstr "시스템 정보"
-#: barcodes/api.py:54 barcodes/api.py:151
+#: barcodes/api.py:54 barcodes/api.py:152
msgid "Must provide barcode_data parameter"
msgstr ""
-#: barcodes/api.py:127
+#: barcodes/api.py:128
msgid "No match found for barcode data"
msgstr ""
-#: barcodes/api.py:129
+#: barcodes/api.py:130
msgid "Match found for barcode data"
msgstr ""
-#: barcodes/api.py:154
+#: barcodes/api.py:155
msgid "Must provide stockitem parameter"
msgstr ""
-#: barcodes/api.py:161
+#: barcodes/api.py:162
msgid "No matching stock item found"
msgstr ""
-#: barcodes/api.py:191
+#: barcodes/api.py:193
msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:195
+#: barcodes/api.py:197
msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:199
+#: barcodes/api.py:201
msgid "Barcode already matches Part"
msgstr ""
-#: barcodes/api.py:205 barcodes/api.py:217
+#: barcodes/api.py:207 barcodes/api.py:219
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:223
+#: barcodes/api.py:225
msgid "Barcode associated with Stock Item"
msgstr ""
-#: build/forms.py:36 build/models.py:1286
+#: build/forms.py:36 build/models.py:1293
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:35 common/models.py:1253
+#: build/templates/build/detail.html:35 common/models.py:1263
#: company/forms.py:42 company/templates/company/supplier_part.html:251
-#: order/models.py:796 order/models.py:1207 order/serializers.py:810
+#: order/models.py:805 order/models.py:1229 order/serializers.py:816
#: order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:145
-#: part/forms.py:161 part/forms.py:177 part/models.py:2629
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144
+#: part/forms.py:160 part/forms.py:176 part/models.py:2636
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:962 part/templates/part/detail.html:1048
+#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -603,7 +604,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:181
#: stock/templates/stock/item_base.html:262
#: stock/templates/stock/item_base.html:270
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:555
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:567
#: templates/js/translated/build.js:295 templates/js/translated/build.js:495
#: templates/js/translated/build.js:689 templates/js/translated/build.js:699
#: templates/js/translated/build.js:1075 templates/js/translated/build.js:1422
@@ -611,21 +612,21 @@ msgstr ""
#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056
#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859
#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036
-#: templates/js/translated/order.js:2150 templates/js/translated/part.js:900
-#: templates/js/translated/part.js:1855 templates/js/translated/part.js:1978
-#: templates/js/translated/part.js:2056 templates/js/translated/stock.js:383
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:750
-#: templates/js/translated/stock.js:2519 templates/js/translated/stock.js:2621
+#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906
+#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985
+#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:391
+#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758
+#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2779
msgid "Quantity"
-msgstr ""
+msgstr "수량"
#: build/forms.py:37
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:41 order/serializers.py:814 stock/forms.py:81
-#: stock/serializers.py:314 templates/js/translated/stock.js:230
-#: templates/js/translated/stock.js:384
+#: build/forms.py:41 order/serializers.py:820 stock/forms.py:81
+#: stock/serializers.py:314 templates/js/translated/stock.js:238
+#: templates/js/translated/stock.js:392
msgid "Serial Numbers"
msgstr ""
@@ -649,18 +650,18 @@ msgstr ""
msgid "Confirm build cancellation"
msgstr ""
-#: build/models.py:133
+#: build/models.py:135
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:139 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:457
+#: templates/js/translated/build.js:457 templates/js/translated/stock.js:2290
msgid "Build Order"
msgstr ""
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:140 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:92
#: order/templates/order/so_sidebar.html:13
@@ -670,40 +671,40 @@ msgstr ""
msgid "Build Orders"
msgstr ""
-#: build/models.py:198
+#: build/models.py:200
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:210 order/models.py:536
-#: order/models.py:803 part/models.py:2638
+#: build/models.py:201 order/models.py:213 order/models.py:541
+#: order/models.py:812 part/models.py:2645
#: 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/translated/bom.js:547 templates/js/translated/build.js:1179
+#: templates/js/translated/bom.js:559 templates/js/translated/build.js:1179
#: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144
msgid "Reference"
msgstr ""
-#: build/models.py:210
+#: build/models.py:212
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:219 build/templates/build/build_base.html:164
+#: build/models.py:221 build/templates/build/build_base.html:164
#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:222
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:225 build/templates/build/build_base.html:77
+#: build/models.py:227 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
-#: order/models.py:856 order/models.py:930
-#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
-#: part/models.py:2204 part/models.py:2220 part/models.py:2239
-#: part/models.py:2256 part/models.py:2358 part/models.py:2480
-#: part/models.py:2613 part/models.py:2920 part/serializers.py:658
+#: order/models.py:876 order/models.py:950
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359
+#: part/models.py:2211 part/models.py:2227 part/models.py:2246
+#: part/models.py:2263 part/models.py:2365 part/models.py:2487
+#: part/models.py:2620 part/models.py:2927 part/serializers.py:658
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -713,205 +714,205 @@ msgstr ""
#: templates/InvenTree/search.html:80
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
-#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:326
-#: templates/js/translated/bom.js:505 templates/js/translated/build.js:680
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:338
+#: templates/js/translated/bom.js:517 templates/js/translated/build.js:680
#: templates/js/translated/build.js:1048 templates/js/translated/build.js:1419
#: templates/js/translated/build.js:1687 templates/js/translated/company.js:492
#: templates/js/translated/company.js:749 templates/js/translated/order.js:84
#: templates/js/translated/order.js:586 templates/js/translated/order.js:1004
#: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933
-#: templates/js/translated/order.js:2128 templates/js/translated/part.js:977
-#: templates/js/translated/part.js:1058 templates/js/translated/part.js:1225
-#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:719
-#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1526
-#: templates/js/translated/stock.js:2609
+#: templates/js/translated/order.js:2128 templates/js/translated/part.js:984
+#: templates/js/translated/part.js:1065 templates/js/translated/part.js:1232
+#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727
+#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1534
+#: templates/js/translated/stock.js:2767
msgid "Part"
msgstr ""
-#: build/models.py:233
+#: build/models.py:235
msgid "Select part to build"
msgstr ""
-#: build/models.py:238
+#: build/models.py:240
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:242
+#: build/models.py:244
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 templates/js/translated/build.js:1407
+#: build/models.py:249 templates/js/translated/build.js:1407
#: templates/js/translated/order.js:1564
msgid "Source Location"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:256
+#: build/models.py:258
msgid "Destination Location"
msgstr ""
-#: build/models.py:260
+#: build/models.py:262
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:264
+#: build/models.py:266
msgid "Build Quantity"
msgstr ""
-#: build/models.py:267
+#: build/models.py:269
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:271
+#: build/models.py:273
msgid "Completed items"
msgstr ""
-#: build/models.py:273
+#: build/models.py:275
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:277 part/templates/part/part_base.html:234
+#: build/models.py:279 part/templates/part/part_base.html:234
msgid "Build Status"
msgstr ""
-#: build/models.py:281
+#: build/models.py:283
msgid "Build status code"
msgstr ""
-#: build/models.py:285 stock/models.py:531
+#: build/models.py:287 stock/models.py:533
msgid "Batch Code"
msgstr ""
-#: build/models.py:289
+#: build/models.py:291
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:126 part/models.py:967
+#: build/models.py:294 order/models.py:129 part/models.py:969
#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:558
+#: build/models.py:298 order/models.py:563
msgid "Target completion date"
msgstr ""
-#: build/models.py:297
+#: build/models.py:299
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:252
+#: build/models.py:302 order/models.py:255
#: templates/js/translated/build.js:1758
msgid "Completion Date"
msgstr ""
-#: build/models.py:306
+#: build/models.py:308
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:1729
+#: build/models.py:316 templates/js/translated/build.js:1729
msgid "Issued by"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:323 build/templates/build/build_base.html:185
-#: build/templates/build/detail.html:116 order/models.py:140
+#: build/models.py:325 build/templates/build/build_base.html:185
+#: build/templates/build/detail.html:116 order/models.py:143
#: order/templates/order/order_base.html:170
-#: order/templates/order/sales_order_base.html:182 part/models.py:971
+#: order/templates/order/sales_order_base.html:182 part/models.py:973
#: report/templates/report/inventree_build_order_base.html:159
#: templates/js/translated/build.js:1741 templates/js/translated/order.js:864
msgid "Responsible"
msgstr ""
-#: build/models.py:324
+#: build/models.py:326
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:329 build/templates/build/detail.html:102
+#: build/models.py:331 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:525
+#: part/templates/part/part_base.html:354 stock/models.py:527
#: stock/templates/stock/item_base.html:373
msgid "External Link"
-msgstr ""
+msgstr "외부 링크"
-#: build/models.py:334 build/serializers.py:201
+#: build/models.py:336 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
-#: order/models.py:144 order/models.py:805 order/models.py:1051
+#: order/models.py:147 order/models.py:814 order/models.py:1071
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:17 part/models.py:956
-#: part/templates/part/detail.html:120 part/templates/part/part_sidebar.html:50
+#: order/templates/order/so_sidebar.html:17 part/models.py:958
+#: part/templates/part/detail.html:137 part/templates/part/part_sidebar.html:54
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:597
-#: stock/models.py:1867 stock/models.py:1973 stock/serializers.py:332
-#: stock/serializers.py:639 stock/serializers.py:737 stock/serializers.py:869
-#: stock/templates/stock/stock_sidebar.html:21
-#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:711
+#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:599
+#: stock/models.py:1895 stock/models.py:2001 stock/serializers.py:332
+#: stock/serializers.py:640 stock/serializers.py:738 stock/serializers.py:870
+#: stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:723
#: templates/js/translated/company.js:845 templates/js/translated/order.js:1149
#: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280
-#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1795
+#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1803
msgid "Notes"
msgstr ""
-#: build/models.py:335
+#: build/models.py:337
msgid "Extra build notes"
msgstr ""
-#: build/models.py:710
+#: build/models.py:717
msgid "No build output specified"
msgstr ""
-#: build/models.py:713
+#: build/models.py:720
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:716
+#: build/models.py:723
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1108
+#: build/models.py:1115
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1117
+#: build/models.py:1124
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1127
+#: build/models.py:1134
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1133 order/models.py:1167
+#: build/models.py:1140 order/models.py:1189
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1139
+#: build/models.py:1146
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1196
+#: build/models.py:1203
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1256 stock/templates/stock/item_base.html:345
+#: build/models.py:1263 stock/templates/stock/item_base.html:345
#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1660
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1257
+#: build/models.py:1264
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1273 build/serializers.py:388 order/serializers.py:690
-#: order/serializers.py:708 stock/serializers.py:577 stock/serializers.py:695
+#: build/models.py:1280 build/serializers.py:388 order/serializers.py:696
+#: order/serializers.py:714 stock/serializers.py:578 stock/serializers.py:696
#: stock/templates/stock/item_base.html:9
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:367
@@ -920,24 +921,24 @@ msgstr ""
#: templates/js/translated/order.js:85 templates/js/translated/order.js:1577
#: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837
#: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030
-#: templates/js/translated/stock.js:555 templates/js/translated/stock.js:720
-#: templates/js/translated/stock.js:2470
+#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728
+#: templates/js/translated/stock.js:2628
msgid "Stock Item"
msgstr ""
-#: build/models.py:1274
+#: build/models.py:1281
msgid "Source stock item"
msgstr ""
-#: build/models.py:1287
+#: build/models.py:1294
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1295
+#: build/models.py:1302
msgid "Install into"
msgstr ""
-#: build/models.py:1296
+#: build/models.py:1303
msgid "Destination stock item"
msgstr ""
@@ -962,32 +963,32 @@ msgid "This build output is not fully allocated"
msgstr ""
#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294
-#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:730
-#: stock/serializers.py:971 stock/templates/stock/item_base.html:313
+#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:731
+#: stock/serializers.py:972 stock/templates/stock/item_base.html:313
#: templates/js/translated/barcode.js:384
#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:480
#: templates/js/translated/build.js:1087 templates/js/translated/order.js:508
#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955
#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044
-#: templates/js/translated/part.js:179 templates/js/translated/stock.js:556
-#: templates/js/translated/stock.js:721 templates/js/translated/stock.js:928
-#: templates/js/translated/stock.js:1676 templates/js/translated/stock.js:2411
+#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564
+#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936
+#: templates/js/translated/stock.js:1684 templates/js/translated/stock.js:2569
msgid "Location"
-msgstr ""
+msgstr "위치"
#: build/serializers.py:191
msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:137
-#: build/templates/build/detail.html:63 order/models.py:552
+#: build/templates/build/detail.html:63 order/models.py:557
#: order/serializers.py:247 stock/templates/stock/item_base.html:187
#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1716
#: templates/js/translated/order.js:591 templates/js/translated/order.js:840
-#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1651
-#: templates/js/translated/stock.js:2488 templates/js/translated/stock.js:2637
+#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:2646 templates/js/translated/stock.js:2795
msgid "Status"
-msgstr ""
+msgstr "상태"
#: build/serializers.py:213
msgid "A list of build outputs must be provided"
@@ -1021,8 +1022,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:313 build/serializers.py:362 part/models.py:2753
-#: part/models.py:2912
+#: build/serializers.py:313 build/serializers.py:362 part/models.py:2760
+#: part/models.py:2919
msgid "BOM Item"
msgstr ""
@@ -1038,16 +1039,16 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:394 stock/serializers.py:584
+#: build/serializers.py:394 stock/serializers.py:585
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:408 order/models.py:277 order/serializers.py:240
-#: stock/models.py:365 stock/models.py:1077 stock/serializers.py:305
+#: build/serializers.py:408 order/models.py:280 order/serializers.py:240
+#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:450 order/serializers.py:741
+#: build/serializers.py:450 order/serializers.py:747
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1060,7 +1061,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:491 order/serializers.py:984
+#: build/serializers.py:491 order/serializers.py:990
msgid "Allocation items must be provided"
msgstr ""
@@ -1164,13 +1165,13 @@ msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:171
-#: build/templates/build/detail.html:95 order/models.py:927
-#: order/models.py:1023 order/templates/order/sales_order_base.html:9
+#: build/templates/build/detail.html:95 order/models.py:947
+#: order/models.py:1043 order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/order.js:1218
+#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2304
msgid "Sales Order"
msgstr ""
@@ -1224,7 +1225,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:50 order/models.py:878 stock/forms.py:136
+#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:136
#: templates/js/translated/order.js:592 templates/js/translated/order.js:1138
msgid "Destination"
msgstr ""
@@ -1239,7 +1240,7 @@ msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:331
-#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2644
+#: templates/js/translated/stock.js:1673 templates/js/translated/stock.js:2802
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:238
msgid "Batch"
@@ -1343,9 +1344,9 @@ msgstr ""
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:107
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:196
-#: part/templates/part/part_sidebar.html:48 stock/templates/stock/item.html:95
-#: stock/templates/stock/stock_sidebar.html:19
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:213
+#: part/templates/part/part_sidebar.html:52 stock/templates/stock/item.html:112
+#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr ""
@@ -1360,8 +1361,8 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:108
#: order/templates/order/sales_order_detail.html:127
#: order/templates/order/sales_order_detail.html:186
-#: part/templates/part/detail.html:124 stock/templates/stock/item.html:115
-#: stock/templates/stock/item.html:205
+#: part/templates/part/detail.html:141 stock/templates/stock/item.html:132
+#: stock/templates/stock/item.html:235
msgid "Edit Notes"
msgstr ""
@@ -1373,7 +1374,7 @@ msgstr ""
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:303
+#: build/templates/build/index.html:18 part/templates/part/detail.html:320
msgid "New Build Order"
msgstr ""
@@ -1453,33 +1454,33 @@ msgstr ""
msgid "Delete Build Order"
msgstr ""
-#: common/files.py:67
+#: common/files.py:65
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
-#: common/files.py:69
+#: common/files.py:67
msgid "Error reading file (invalid encoding)"
msgstr ""
-#: common/files.py:74
+#: common/files.py:72
msgid "Error reading file (invalid format)"
msgstr ""
-#: common/files.py:76
+#: common/files.py:74
msgid "Error reading file (incorrect dimension)"
msgstr ""
-#: common/files.py:78
+#: common/files.py:76
msgid "Error reading file (data could be corrupted)"
msgstr ""
#: common/forms.py:34
msgid "File"
-msgstr ""
+msgstr "파일"
#: common/forms.py:35
msgid "Select file to upload"
-msgstr ""
+msgstr "업로드할 파일을 선택하세요"
#: common/forms.py:50
msgid "{name.title()} File"
@@ -1490,740 +1491,828 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:344 common/models.py:998 common/models.py:1206
-msgid "Settings key (must be unique - case insensitive"
+#: common/models.py:352
+msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:346
+#: common/models.py:354
msgid "Settings value"
msgstr ""
-#: common/models.py:380
+#: common/models.py:388
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:400
+#: common/models.py:408
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:411
+#: common/models.py:419
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:434
+#: common/models.py:442
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:553
+#: common/models.py:561
msgid "No group"
msgstr ""
-#: common/models.py:595
+#: common/models.py:603
msgid "Restart required"
-msgstr ""
+msgstr "재시작 필요"
-#: common/models.py:596
+#: common/models.py:604
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:603
+#: common/models.py:611
msgid "InvenTree Instance Name"
msgstr ""
-#: common/models.py:605
+#: common/models.py:613
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:609
+#: common/models.py:617
msgid "Use instance name"
msgstr ""
-#: common/models.py:610
+#: common/models.py:618
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:616 company/models.py:100 company/models.py:101
+#: common/models.py:624 company/models.py:100 company/models.py:101
msgid "Company name"
-msgstr ""
+msgstr "회사명"
-#: common/models.py:617
+#: common/models.py:625
msgid "Internal company name"
msgstr ""
-#: common/models.py:622
+#: common/models.py:630
msgid "Base URL"
msgstr ""
-#: common/models.py:623
+#: common/models.py:631
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:629
-msgid "Default Currency"
-msgstr ""
-
-#: common/models.py:630
-msgid "Default currency"
-msgstr ""
-
-#: common/models.py:636
-msgid "Download from URL"
-msgstr ""
-
#: common/models.py:637
+msgid "Default Currency"
+msgstr "기본 통화"
+
+#: common/models.py:638
+msgid "Default currency"
+msgstr "기본 통화"
+
+#: common/models.py:644
+msgid "Download from URL"
+msgstr "URL에서 다운로드"
+
+#: common/models.py:645
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:643 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:651 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
-msgstr ""
+msgstr "바코드 지원"
-#: common/models.py:644
+#: common/models.py:652
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:650
+#: common/models.py:658
msgid "IPN Regex"
msgstr ""
-#: common/models.py:651
+#: common/models.py:659
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:655
+#: common/models.py:663
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:656
+#: common/models.py:664
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:662
+#: common/models.py:670
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:663
+#: common/models.py:671
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:669
+#: common/models.py:677
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:670
+#: common/models.py:678
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:676
+#: common/models.py:684
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:677
+#: common/models.py:685
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:683
+#: common/models.py:691
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:684
+#: common/models.py:692
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:690
+#: common/models.py:698
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:691
+#: common/models.py:699
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:697 part/models.py:2482 report/models.py:187
+#: common/models.py:705 part/models.py:2489 report/models.py:187
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:422
msgid "Template"
msgstr ""
-#: common/models.py:698
+#: common/models.py:706
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:704 part/models.py:919 templates/js/translated/bom.js:1068
+#: common/models.py:712 part/models.py:921 templates/js/translated/bom.js:1082
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:434
msgid "Assembly"
msgstr ""
-#: common/models.py:705
+#: common/models.py:713
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:711 part/models.py:925
+#: common/models.py:719 part/models.py:927
#: templates/js/translated/table_filters.js:438
msgid "Component"
msgstr ""
-#: common/models.py:712
+#: common/models.py:720
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:718 part/models.py:936
+#: common/models.py:726 part/models.py:938
msgid "Purchaseable"
-msgstr ""
+msgstr "구입 가능"
-#: common/models.py:719
+#: common/models.py:727
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:725 part/models.py:941
+#: common/models.py:733 part/models.py:943
#: templates/js/translated/table_filters.js:446
msgid "Salable"
-msgstr ""
+msgstr "판매 가능"
-#: common/models.py:726
+#: common/models.py:734
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:732 part/models.py:931
+#: common/models.py:740 part/models.py:933
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
#: templates/js/translated/table_filters.js:450
msgid "Trackable"
msgstr ""
-#: common/models.py:733
+#: common/models.py:741
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:739 part/models.py:951
+#: common/models.py:747 part/models.py:953
#: part/templates/part/part_base.html:147
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr ""
-#: common/models.py:740
+#: common/models.py:748
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:746
+#: common/models.py:754
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:747
+#: common/models.py:755
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:753
+#: common/models.py:761
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:754
+#: common/models.py:762
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:765
+#: common/models.py:773
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:766
+#: common/models.py:774
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:772
+#: common/models.py:780
msgid "Show related parts"
msgstr ""
-#: common/models.py:773
+#: common/models.py:781
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:779
+#: common/models.py:787
msgid "Create initial stock"
msgstr ""
-#: common/models.py:780
+#: common/models.py:788
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:786
+#: common/models.py:794
msgid "Internal Prices"
msgstr ""
-#: common/models.py:787
+#: common/models.py:795
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:793
+#: common/models.py:801
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:794
+#: common/models.py:802
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:800
+#: common/models.py:808
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:801
+#: common/models.py:809
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:808
+#: common/models.py:816
msgid "Enable Reports"
msgstr ""
-#: common/models.py:809
+#: common/models.py:817
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:815 templates/stats.html:25
+#: common/models.py:823 templates/stats.html:25
msgid "Debug Mode"
-msgstr ""
+msgstr "디버그 모드"
-#: common/models.py:816
+#: common/models.py:824
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:822
+#: common/models.py:830
msgid "Page Size"
-msgstr ""
+msgstr "페이지 크기"
-#: common/models.py:823
+#: common/models.py:831
msgid "Default page size for PDF reports"
-msgstr ""
+msgstr "PDF 보고서 기본 페이지 크기"
-#: common/models.py:833
+#: common/models.py:841
msgid "Test Reports"
msgstr ""
-#: common/models.py:834
+#: common/models.py:842
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:840
+#: common/models.py:848
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:841
+#: common/models.py:849
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:847
+#: common/models.py:855
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:848
+#: common/models.py:856
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:854
+#: common/models.py:862
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:855
+#: common/models.py:863
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:857
+#: common/models.py:865
msgid "days"
msgstr ""
-#: common/models.py:862
+#: common/models.py:870
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:863
+#: common/models.py:871
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:869
+#: common/models.py:877
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:870
+#: common/models.py:878
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:876
-msgid "Group by Part"
-msgstr ""
-
-#: common/models.py:877
-msgid "Group stock items by part reference in table views"
-msgstr ""
-
-#: common/models.py:883
+#: common/models.py:884
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:884
+#: common/models.py:885
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:889
+#: common/models.py:890
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:890
+#: common/models.py:891
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:894
+#: common/models.py:895
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:895
+#: common/models.py:896
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:900
+#: common/models.py:901
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:901
+#: common/models.py:902
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:907
+#: common/models.py:908
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:908
+#: common/models.py:909
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:913
+#: common/models.py:914
msgid "Enable registration"
msgstr ""
-#: common/models.py:914
+#: common/models.py:915
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:919
-msgid "Enable SSO"
-msgstr ""
-
#: common/models.py:920
+msgid "Enable SSO"
+msgstr "SSO 활성화"
+
+#: common/models.py:921
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:925
-msgid "Email required"
-msgstr ""
-
#: common/models.py:926
+msgid "Email required"
+msgstr "이메일 필요"
+
+#: common/models.py:927
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:931
+#: common/models.py:932
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:932
+#: common/models.py:933
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:937
+#: common/models.py:938
msgid "Mail twice"
msgstr ""
-#: common/models.py:938
+#: common/models.py:939
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:943
+#: common/models.py:944
msgid "Password twice"
msgstr ""
-#: common/models.py:944
+#: common/models.py:945
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:949
+#: common/models.py:950
msgid "Group on signup"
msgstr ""
-#: common/models.py:950
+#: common/models.py:951
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:955
+#: common/models.py:956
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:956
+#: common/models.py:957
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:961
+#: common/models.py:964
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:962
+#: common/models.py:965
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:968
+#: common/models.py:971
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:969
+#: common/models.py:972
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:975
+#: common/models.py:978
msgid "Enable app integration"
msgstr ""
-#: common/models.py:976
+#: common/models.py:979
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:982
+#: common/models.py:985
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:983
+#: common/models.py:986
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1029
+#: common/models.py:992
+msgid "Enable event integration"
+msgstr ""
+
+#: common/models.py:993
+msgid "Enable plugins to respond to internal events"
+msgstr ""
+
+#: common/models.py:1008 common/models.py:1216
+msgid "Settings key (must be unique - case insensitive"
+msgstr ""
+
+#: common/models.py:1039
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1030
+#: common/models.py:1040
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1035
+#: common/models.py:1045
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1036
+#: common/models.py:1046
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1041
+#: common/models.py:1051
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1042
+#: common/models.py:1052
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1047
+#: common/models.py:1057
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1048
+#: common/models.py:1058
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1054
+#: common/models.py:1064
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1055
+#: common/models.py:1065
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1070
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1061
+#: common/models.py:1071
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1066
+#: common/models.py:1076
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1067
+#: common/models.py:1077
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1072
+#: common/models.py:1082
msgid "Show low stock"
msgstr ""
-#: common/models.py:1073
+#: common/models.py:1083
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1078
+#: common/models.py:1088
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1079
+#: common/models.py:1089
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1084
+#: common/models.py:1094
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1085
+#: common/models.py:1095
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1090
+#: common/models.py:1100
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1091
+#: common/models.py:1101
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1096
+#: common/models.py:1106
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1097
+#: common/models.py:1107
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1102
+#: common/models.py:1112
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1103
+#: common/models.py:1113
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1108
+#: common/models.py:1118
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1109
+#: common/models.py:1119
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1114
+#: common/models.py:1124
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1115
+#: common/models.py:1125
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1120
+#: common/models.py:1130
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1121
+#: common/models.py:1131
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1136
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1127
+#: common/models.py:1137
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1142
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1143
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1149
msgid "Inline label display"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1150
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1156
msgid "Inline report display"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1157
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1163
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1164
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1170
msgid "Search Show Stock"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1171
msgid "Display stock levels in search preview window"
msgstr ""
-#: common/models.py:1167
+#: common/models.py:1177
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1178
msgid "Hide inactive parts in search preview window"
msgstr ""
-#: common/models.py:1174
+#: common/models.py:1184
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1175
+#: common/models.py:1185
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1181
+#: common/models.py:1191
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1182
+#: common/models.py:1192
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1188
+#: common/models.py:1198
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1199
msgid "InvenTree navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1254 company/forms.py:43
+#: common/models.py:1264 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1261 company/serializers.py:264
+#: common/models.py:1271 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:909 templates/js/translated/part.js:1860
+#: templates/js/translated/part.js:915 templates/js/translated/part.js:1867
msgid "Price"
msgstr ""
-#: common/models.py:1262
+#: common/models.py:1272
msgid "Unit price at specified quantity"
msgstr ""
+#: common/models.py:1429 common/models.py:1568
+msgid "Endpoint"
+msgstr ""
+
+#: common/models.py:1430
+msgid "Endpoint at which this webhook is received"
+msgstr ""
+
+#: common/models.py:1439
+msgid "Name for this webhook"
+msgstr ""
+
+#: common/models.py:1444 part/models.py:948 plugin/models.py:46
+#: templates/js/translated/table_filters.js:34
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:295
+#: templates/js/translated/table_filters.js:417
+msgid "Active"
+msgstr ""
+
+#: common/models.py:1445
+msgid "Is this webhook active"
+msgstr ""
+
+#: common/models.py:1459
+msgid "Token"
+msgstr ""
+
+#: common/models.py:1460
+msgid "Token for access"
+msgstr ""
+
+#: common/models.py:1467
+msgid "Secret"
+msgstr ""
+
+#: common/models.py:1468
+msgid "Shared secret for HMAC"
+msgstr ""
+
+#: common/models.py:1535
+msgid "Message ID"
+msgstr ""
+
+#: common/models.py:1536
+msgid "Unique identifier for this message"
+msgstr ""
+
+#: common/models.py:1544
+msgid "Host"
+msgstr ""
+
+#: common/models.py:1545
+msgid "Host from which this message was received"
+msgstr ""
+
+#: common/models.py:1552
+msgid "Header"
+msgstr ""
+
+#: common/models.py:1553
+msgid "Header of this message"
+msgstr ""
+
+#: common/models.py:1559
+msgid "Body"
+msgstr ""
+
+#: common/models.py:1560
+msgid "Body of this message"
+msgstr ""
+
+#: common/models.py:1569
+msgid "Endpoint on which this message was received"
+msgstr ""
+
+#: common/models.py:1574
+msgid "Worked on"
+msgstr ""
+
+#: common/models.py:1575
+msgid "Was the work on this message finished?"
+msgstr ""
+
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
#: part/templates/part/bom_upload/upload_file.html:52
-#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
-#: part/views.py:764
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:213
+#: part/views.py:773
msgid "Upload File"
-msgstr ""
+msgstr "파일 업로드"
#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
-#: part/views.py:765
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:214
+#: part/views.py:774
msgid "Match Fields"
msgstr ""
@@ -2254,15 +2343,15 @@ msgstr ""
#: company/forms.py:24 part/forms.py:46
#: templates/InvenTree/settings/mixins/urls.html:14
msgid "URL"
-msgstr ""
+msgstr "URL"
#: company/forms.py:25 part/forms.py:47
msgid "Image URL"
-msgstr ""
+msgstr "이미지 URL"
#: company/models.py:105
msgid "Company description"
-msgstr ""
+msgstr "회사 소개"
#: company/models.py:106
msgid "Description of the company"
@@ -2272,23 +2361,23 @@ msgstr ""
#: templates/InvenTree/settings/plugin_settings.html:55
#: templates/js/translated/company.js:349
msgid "Website"
-msgstr ""
+msgstr "웹사이트"
#: company/models.py:113
msgid "Company website URL"
-msgstr ""
+msgstr "회사 웹사이트 URL"
#: company/models.py:117 company/templates/company/company_base.html:115
msgid "Address"
-msgstr ""
+msgstr "주소"
#: company/models.py:118
msgid "Company address"
-msgstr ""
+msgstr "회사 주소"
#: company/models.py:121
msgid "Phone number"
-msgstr ""
+msgstr "전화번호"
#: company/models.py:122
msgid "Contact phone number"
@@ -2297,7 +2386,7 @@ msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:129
#: templates/InvenTree/settings/user.html:48
msgid "Email"
-msgstr ""
+msgstr "이메일"
#: company/models.py:125
msgid "Contact email address"
@@ -2315,9 +2404,9 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:838
+#: company/models.py:139 part/models.py:840
msgid "Image"
-msgstr ""
+msgstr "이미지"
#: company/models.py:144
msgid "is customer"
@@ -2352,8 +2441,8 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:469
-#: stock/templates/stock/item_base.html:142
+#: company/models.py:320 company/models.py:535 stock/models.py:471
+#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:328
msgid "Base Part"
msgstr ""
@@ -2380,7 +2469,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:818 templates/js/translated/order.js:1038
-#: templates/js/translated/part.js:245 templates/js/translated/part.js:889
+#: templates/js/translated/part.js:245 templates/js/translated/part.js:895
msgid "MPN"
msgstr ""
@@ -2409,8 +2498,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1960 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:709 templates/js/translated/stock.js:1296
+#: stock/models.py:1988 templates/js/translated/company.js:647
+#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1304
msgid "Value"
msgstr ""
@@ -2418,10 +2507,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:913 part/models.py:2450
+#: company/models.py:429 part/models.py:915 part/models.py:2457
#: part/templates/part/part_base.html:288
-#: templates/InvenTree/settings/settings.html:284
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:715
+#: templates/InvenTree/settings/settings.html:287
+#: templates/js/translated/company.js:653 templates/js/translated/part.js:721
msgid "Units"
msgstr ""
@@ -2434,13 +2523,13 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:78
-#: company/templates/company/supplier_part.html:87 order/models.py:224
+#: company/templates/company/supplier_part.html:87 order/models.py:227
#: order/templates/order/order_base.html:112
-#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
-#: part/bom.py:247 stock/templates/stock/item_base.html:397
+#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237
+#: part/bom.py:265 stock/templates/stock/item_base.html:397
#: templates/js/translated/company.js:337
#: templates/js/translated/company.js:774 templates/js/translated/order.js:823
-#: templates/js/translated/part.js:215 templates/js/translated/part.js:857
+#: templates/js/translated/part.js:215 templates/js/translated/part.js:863
#: templates/js/translated/table_filters.js:393
msgid "Supplier"
msgstr ""
@@ -2450,10 +2539,10 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:1025
-#: templates/js/translated/part.js:226 templates/js/translated/part.js:875
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1025
+#: templates/js/translated/part.js:226 templates/js/translated/part.js:881
msgid "SKU"
-msgstr ""
+msgstr "SKU"
#: company/models.py:552 templates/js/translated/part.js:227
msgid "Supplier stock keeping unit"
@@ -2472,22 +2561,22 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:119
-#: part/models.py:2641 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2648 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:580 part/models.py:1779
+#: company/models.py:580 part/models.py:1781
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1779
+#: company/models.py:580 part/models.py:1781
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:493 stock/templates/stock/item_base.html:338
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1791
+#: stock/models.py:495 stock/templates/stock/item_base.html:338
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1799
msgid "Packaging"
msgstr ""
@@ -2495,7 +2584,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1781
+#: company/models.py:584 part/models.py:1783
msgid "multiple"
msgstr ""
@@ -2515,7 +2604,7 @@ msgstr ""
#: company/templates/company/company_base.html:12
#: templates/InvenTree/search.html:176 templates/js/translated/company.js:322
msgid "Company"
-msgstr ""
+msgstr "회사"
#: company/templates/company/company_base.html:22
#: templates/js/translated/order.js:279
@@ -2528,41 +2617,41 @@ msgstr ""
#: company/templates/company/company_base.html:31
msgid "Edit company information"
-msgstr ""
+msgstr "회사 정보 수정"
#: company/templates/company/company_base.html:32
#: templates/js/translated/company.js:265
msgid "Edit Company"
-msgstr ""
+msgstr "회사 수정"
#: company/templates/company/company_base.html:36
msgid "Delete company"
-msgstr ""
+msgstr "회사 삭제"
#: company/templates/company/company_base.html:37
#: company/templates/company/company_base.html:159
msgid "Delete Company"
-msgstr ""
+msgstr "회사 삭제"
#: company/templates/company/company_base.html:53
#: part/templates/part/part_thumb.html:12
msgid "Upload new image"
-msgstr ""
+msgstr "새 이미지 업로드"
#: company/templates/company/company_base.html:56
#: part/templates/part/part_thumb.html:14
msgid "Download image from URL"
-msgstr ""
+msgstr "URL에서 이미지 다운로드"
-#: company/templates/company/company_base.html:83 order/models.py:547
-#: order/templates/order/sales_order_base.html:115 stock/models.py:512
-#: stock/models.py:513 stock/serializers.py:625
+#: company/templates/company/company_base.html:83 order/models.py:552
+#: order/templates/order/sales_order_base.html:115 stock/models.py:514
+#: stock/models.py:515 stock/serializers.py:626
#: stock/templates/stock/item_base.html:290
#: templates/js/translated/company.js:329 templates/js/translated/order.js:1240
-#: templates/js/translated/stock.js:2452
+#: templates/js/translated/stock.js:2610
#: templates/js/translated/table_filters.js:397
msgid "Customer"
-msgstr ""
+msgstr "고객"
#: company/templates/company/company_base.html:108
msgid "Uses default currency"
@@ -2570,12 +2659,12 @@ msgstr ""
#: company/templates/company/company_base.html:122
msgid "Phone"
-msgstr ""
+msgstr "전화번호"
#: company/templates/company/company_base.html:205
#: part/templates/part/part_base.html:471
msgid "Upload Image"
-msgstr ""
+msgstr "이미지 업로드"
#: company/templates/company/detail.html:15
#: company/templates/company/manufacturer_part_sidebar.html:7
@@ -2590,7 +2679,7 @@ msgstr ""
#: company/templates/company/detail.html:20
#: company/templates/company/manufacturer_part.html:118
-#: part/templates/part/detail.html:336
+#: part/templates/part/detail.html:353
msgid "New Supplier Part"
msgstr ""
@@ -2598,8 +2687,8 @@ msgstr ""
#: company/templates/company/detail.html:79
#: company/templates/company/manufacturer_part.html:127
#: company/templates/company/manufacturer_part.html:156
-#: part/templates/part/category.html:171 part/templates/part/detail.html:345
-#: part/templates/part/detail.html:374
+#: part/templates/part/category.html:171 part/templates/part/detail.html:362
+#: part/templates/part/detail.html:391
msgid "Options"
msgstr ""
@@ -2627,7 +2716,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:364
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:381
msgid "New Manufacturer Part"
msgstr ""
@@ -2641,7 +2730,7 @@ msgstr ""
#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:68 part/templates/part/part_sidebar.html:33
+#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
@@ -2663,7 +2752,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:91 part/templates/part/part_sidebar.html:37
+#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:41
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
@@ -2691,13 +2780,13 @@ msgstr ""
#: company/templates/company/detail.html:384
#: company/templates/company/manufacturer_part.html:215
-#: part/templates/part/detail.html:418
+#: part/templates/part/detail.html:435
msgid "Delete Supplier Parts?"
msgstr ""
#: company/templates/company/detail.html:385
#: company/templates/company/manufacturer_part.html:216
-#: part/templates/part/detail.html:419
+#: part/templates/part/detail.html:436
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2714,7 +2803,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:34
#: company/templates/company/supplier_part.html:159
-#: part/templates/part/detail.html:71 part/templates/part/part_base.html:76
+#: part/templates/part/detail.html:88 part/templates/part/part_base.html:76
msgid "Order part"
msgstr ""
@@ -2735,34 +2824,34 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:114
#: company/templates/company/supplier_part.html:15 company/views.py:49
-#: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163
+#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:163
#: templates/InvenTree/search.html:188 templates/navbar.html:45
msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
-#: part/templates/part/detail.html:347
+#: part/templates/part/detail.html:364
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
#: company/templates/company/manufacturer_part.html:158
#: company/templates/company/manufacturer_part.html:254
-#: part/templates/part/detail.html:347 part/templates/part/detail.html:376
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:393
#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31
-#: users/models.py:210
+#: users/models.py:212
msgid "Delete"
-msgstr ""
+msgstr "삭제"
#: company/templates/company/manufacturer_part.html:143
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:17
-#: part/templates/part/detail.html:170 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:187 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:147
-#: part/templates/part/detail.html:175
+#: part/templates/part/detail.html:192
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
@@ -2773,7 +2862,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:191
-#: part/templates/part/detail.html:862
+#: part/templates/part/detail.html:892
msgid "Add Parameter"
msgstr ""
@@ -2802,9 +2891,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:477
+#: company/templates/company/supplier_part.html:24 stock/models.py:479
#: stock/templates/stock/item_base.html:402
-#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1748
+#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1756
msgid "Supplier Part"
msgstr ""
@@ -2830,7 +2919,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:167
-#: templates/js/translated/stock.js:360
+#: templates/js/translated/stock.js:368
msgid "New Stock Item"
msgstr ""
@@ -2840,7 +2929,7 @@ msgid "Supplier Part Orders"
msgstr ""
#: company/templates/company/supplier_part.html:160
-#: part/templates/part/detail.html:72
+#: part/templates/part/detail.html:89
msgid "Order Part"
msgstr ""
@@ -2851,7 +2940,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1619
+#: part/templates/part/prices.html:271 part/views.py:1628
msgid "Add Price Break"
msgstr ""
@@ -2859,11 +2948,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1681
+#: company/templates/company/supplier_part.html:224 part/views.py:1690
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1667
+#: company/templates/company/supplier_part.html:238 part/views.py:1676
msgid "Edit Price Break"
msgstr ""
@@ -2881,10 +2970,10 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:150
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/bom.js:328 templates/js/translated/part.js:489
-#: templates/js/translated/part.js:624 templates/js/translated/part.js:1118
-#: templates/js/translated/part.js:1279 templates/js/translated/stock.js:927
-#: templates/js/translated/stock.js:1580 templates/navbar.html:28
+#: templates/js/translated/bom.js:340 templates/js/translated/part.js:495
+#: templates/js/translated/part.js:630 templates/js/translated/part.js:1125
+#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:935
+#: templates/js/translated/stock.js:1588 templates/navbar.html:28
msgid "Stock"
msgstr ""
@@ -2907,8 +2996,8 @@ msgstr ""
#: stock/templates/stock/location.html:151
#: stock/templates/stock/location.html:163
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2351
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2509
+#: templates/stats.html:105 templates/stats.html:114 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2927,7 +3016,7 @@ msgstr ""
#: company/views.py:62
msgid "New Customer"
-msgstr ""
+msgstr "신규 고객"
#: company/views.py:69
msgid "Companies"
@@ -2935,22 +3024,22 @@ msgstr ""
#: company/views.py:70
msgid "New Company"
-msgstr ""
+msgstr "새 회사"
-#: company/views.py:129 part/views.py:584
+#: company/views.py:129 part/views.py:593
msgid "Download Image"
-msgstr ""
+msgstr "이미지 다운로드"
-#: company/views.py:158 part/views.py:616
+#: company/views.py:158 part/views.py:625
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:623
+#: company/views.py:165 part/views.py:632
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:632
+#: company/views.py:174 part/views.py:641
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3036,282 +3125,282 @@ msgstr ""
msgid "Cancel order"
msgstr ""
-#: order/models.py:122
+#: order/models.py:125
msgid "Order description"
msgstr ""
-#: order/models.py:124
+#: order/models.py:127
msgid "Link to external page"
msgstr ""
-#: order/models.py:132
+#: order/models.py:135
msgid "Created By"
msgstr ""
-#: order/models.py:139
+#: order/models.py:142
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:144
+#: order/models.py:147
msgid "Order notes"
msgstr ""
-#: order/models.py:211 order/models.py:537
+#: order/models.py:214 order/models.py:542
msgid "Order reference"
msgstr ""
-#: order/models.py:216 order/models.py:552
+#: order/models.py:219 order/models.py:557
msgid "Purchase order status"
msgstr ""
-#: order/models.py:225
+#: order/models.py:228
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:228 order/templates/order/order_base.html:118
+#: order/models.py:231 order/templates/order/order_base.html:118
#: templates/js/translated/order.js:832
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:228
+#: order/models.py:231
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:235
+#: order/models.py:238
msgid "received by"
msgstr ""
-#: order/models.py:240
+#: order/models.py:243
msgid "Issue Date"
msgstr ""
-#: order/models.py:241
+#: order/models.py:244
msgid "Date order was issued"
msgstr ""
-#: order/models.py:246
+#: order/models.py:249
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:247
+#: order/models.py:250
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:253
+#: order/models.py:256
msgid "Date order was completed"
msgstr ""
-#: order/models.py:282
+#: order/models.py:285
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:411
-msgid "Quantity must be an integer"
-msgstr ""
-
-#: order/models.py:415
+#: order/models.py:420
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:548
+#: order/models.py:553
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:554
+#: order/models.py:559
msgid "Customer Reference "
msgstr ""
-#: order/models.py:554
+#: order/models.py:559
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:559
+#: order/models.py:564
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:562 order/models.py:1028
+#: order/models.py:567 order/models.py:1048
#: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429
msgid "Shipment Date"
msgstr ""
-#: order/models.py:569
+#: order/models.py:574
msgid "shipped by"
msgstr ""
-#: order/models.py:635
+#: order/models.py:640
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:639
+#: order/models.py:644
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:642
+#: order/models.py:647
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:645
+#: order/models.py:650
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:797
+#: order/models.py:806
msgid "Item quantity"
msgstr ""
-#: order/models.py:803
+#: order/models.py:812
msgid "Line item reference"
msgstr ""
-#: order/models.py:805
+#: order/models.py:814
msgid "Line item notes"
msgstr ""
-#: order/models.py:835 order/models.py:926 order/models.py:1022
-#: templates/js/translated/order.js:1820
+#: order/models.py:842
+msgid "Supplier part must match supplier"
+msgstr ""
+
+#: order/models.py:855 order/models.py:946 order/models.py:1042
+#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2271
msgid "Order"
msgstr ""
-#: order/models.py:836 order/templates/order/order_base.html:9
+#: order/models.py:856 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:352
-#: templates/js/translated/order.js:801 templates/js/translated/part.js:832
-#: templates/js/translated/stock.js:1725 templates/js/translated/stock.js:2433
+#: templates/js/translated/order.js:801 templates/js/translated/part.js:838
+#: templates/js/translated/stock.js:1733 templates/js/translated/stock.js:2591
msgid "Purchase Order"
msgstr ""
-#: order/models.py:857
+#: order/models.py:877
msgid "Supplier part"
msgstr ""
-#: order/models.py:864 order/templates/order/order_base.html:163
+#: order/models.py:884 order/templates/order/order_base.html:163
#: templates/js/translated/order.js:589 templates/js/translated/order.js:1118
-#: templates/js/translated/part.js:904 templates/js/translated/part.js:930
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:937
#: templates/js/translated/table_filters.js:317
msgid "Received"
msgstr ""
-#: order/models.py:865
+#: order/models.py:885
msgid "Number of items received"
msgstr ""
-#: order/models.py:872 part/templates/part/prices.html:176 stock/models.py:606
+#: order/models.py:892 part/templates/part/prices.html:176 stock/models.py:608
#: stock/serializers.py:170 stock/templates/stock/item_base.html:359
-#: templates/js/translated/stock.js:1779
+#: templates/js/translated/stock.js:1787
msgid "Purchase Price"
msgstr ""
-#: order/models.py:873
+#: order/models.py:893
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:881
+#: order/models.py:901
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:936 part/templates/part/part_pricing.html:112
+#: order/models.py:956 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:937
+#: order/models.py:957
msgid "Unit sale price"
msgstr ""
-#: order/models.py:942
+#: order/models.py:962
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1029
+#: order/models.py:1049
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1036
+#: order/models.py:1056
msgid "Checked By"
msgstr ""
-#: order/models.py:1037
+#: order/models.py:1057
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1045
+#: order/models.py:1065
msgid "Shipment number"
msgstr ""
-#: order/models.py:1052
+#: order/models.py:1072
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1059
+#: order/models.py:1079
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1060
+#: order/models.py:1080
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1070
+#: order/models.py:1090
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1073
+#: order/models.py:1093
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1149 order/models.py:1151
+#: order/models.py:1171 order/models.py:1173
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1155
+#: order/models.py:1177
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1157
+#: order/models.py:1179
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1160
+#: order/models.py:1182
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1164
+#: order/models.py:1186
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:1170 order/serializers.py:734
+#: order/models.py:1192 order/serializers.py:740
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1173
+#: order/models.py:1195
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1174
+#: order/models.py:1196
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1182
+#: order/models.py:1204
msgid "Line"
msgstr ""
-#: order/models.py:1190 order/serializers.py:825 order/serializers.py:953
-#: templates/js/translated/model_renderers.js:251
+#: order/models.py:1212 order/serializers.py:831 order/serializers.py:959
+#: templates/js/translated/model_renderers.js:285
msgid "Shipment"
msgstr ""
-#: order/models.py:1191
+#: order/models.py:1213
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1203
+#: order/models.py:1225
msgid "Item"
msgstr ""
-#: order/models.py:1204
+#: order/models.py:1226
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1207
+#: order/models.py:1229
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3319,7 +3408,7 @@ msgstr ""
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:211 order/serializers.py:790
+#: order/serializers.py:211 order/serializers.py:796
msgid "Line Item"
msgstr ""
@@ -3355,39 +3444,39 @@ msgstr ""
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:581
+#: order/serializers.py:587
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:649
+#: order/serializers.py:655
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:699 order/serializers.py:802
+#: order/serializers.py:705 order/serializers.py:808
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:721
+#: order/serializers.py:727
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:815
+#: order/serializers.py:821
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:839 order/serializers.py:964
+#: order/serializers.py:845 order/serializers.py:970
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:842 order/serializers.py:967
+#: order/serializers.py:848 order/serializers.py:973
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:894
+#: order/serializers.py:900
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:904
+#: order/serializers.py:910
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3441,6 +3530,7 @@ msgstr ""
#: order/templates/order/order_base.html:94
#: order/templates/order/sales_order_base.html:89
+#: templates/js/translated/stock.js:2327
msgid "Order Status"
msgstr ""
@@ -3538,7 +3628,7 @@ msgstr ""
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/build.js:300 templates/js/translated/build.js:1311
#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488
-#: templates/js/translated/stock.js:593 templates/js/translated/stock.js:761
+#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769
msgid "Remove row"
msgstr ""
@@ -3713,7 +3803,7 @@ msgstr ""
#: order/templates/order/sales_order_cancel.html:8
#: stock/templates/stock/stockitem_convert.html:13
msgid "Warning"
-msgstr ""
+msgstr "경고"
#: order/templates/order/sales_order_cancel.html:9
msgid "Cancelling this order means that the order will no longer be editable."
@@ -3729,7 +3819,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:48
-#: templates/js/translated/bom.js:720 templates/js/translated/build.js:1243
+#: templates/js/translated/bom.js:732 templates/js/translated/build.js:1243
msgid "Actions"
msgstr ""
@@ -3832,447 +3922,448 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:125 part/models.py:81 part/models.py:847
+#: part/bom.py:125 part/models.py:83 part/models.py:849
#: part/templates/part/category.html:108 part/templates/part/part_base.html:338
msgid "Default Location"
msgstr ""
-#: part/bom.py:126 part/templates/part/part_base.html:185
+#: part/bom.py:126 templates/email/low_stock_notification.html:17
+msgid "Total Stock"
+msgstr ""
+
+#: part/bom.py:127 part/templates/part/part_base.html:185
msgid "Available Stock"
msgstr ""
-#: part/forms.py:85
+#: part/bom.py:128 part/templates/part/part_base.html:203
+#: templates/js/translated/part.js:1301
+msgid "On Order"
+msgstr ""
+
+#: part/forms.py:84
msgid "Select part category"
msgstr ""
-#: part/forms.py:122
+#: part/forms.py:121
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:126
+#: part/forms.py:125
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:146
+#: part/forms.py:145
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:82
+#: part/models.py:84
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:85
+#: part/models.py:87
msgid "Default keywords"
msgstr ""
-#: part/models.py:85
+#: part/models.py:87
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:95 part/models.py:2526 part/templates/part/category.html:15
+#: part/models.py:97 part/models.py:2533 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:96 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/stats.html:84
+#: part/models.py:98 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/stats.html:96
#: users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:358 part/templates/part/cat_link.html:3
+#: part/models.py:360 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:17 part/templates/part/category.html:133
#: part/templates/part/category.html:153
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:37
-#: templates/js/translated/part.js:1656 templates/navbar.html:21
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+#: templates/js/translated/part.js:1663 templates/navbar.html:21
+#: templates/stats.html:92 templates/stats.html:101 users/models.py:41
msgid "Parts"
msgstr ""
-#: part/models.py:450
+#: part/models.py:452
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:500 part/models.py:512
+#: part/models.py:502 part/models.py:514
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:642
+#: part/models.py:644
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:646
+#: part/models.py:648
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:651
+#: part/models.py:653
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:746
+#: part/models.py:748
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:771
+#: part/models.py:773
msgid "Part name"
msgstr ""
-#: part/models.py:778
+#: part/models.py:780
msgid "Is Template"
msgstr ""
-#: part/models.py:779
+#: part/models.py:781
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:789
+#: part/models.py:791
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:790
+#: part/models.py:792
msgid "Variant Of"
msgstr ""
-#: part/models.py:796
+#: part/models.py:798
msgid "Part description"
msgstr ""
-#: part/models.py:801 part/templates/part/category.html:86
+#: part/models.py:803 part/templates/part/category.html:86
#: part/templates/part/part_base.html:302
msgid "Keywords"
msgstr ""
-#: part/models.py:802
+#: part/models.py:804
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:809 part/models.py:2276 part/models.py:2525
+#: part/models.py:811 part/models.py:2283 part/models.py:2532
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:183
-#: templates/js/translated/part.js:1261
+#: templates/InvenTree/settings/settings.html:186
+#: templates/js/translated/part.js:1268
msgid "Category"
msgstr ""
-#: part/models.py:810
+#: part/models.py:812
msgid "Part category"
msgstr ""
-#: part/models.py:815 part/templates/part/part_base.html:274
-#: templates/js/translated/part.js:612 templates/js/translated/part.js:1214
-#: templates/js/translated/stock.js:1552
+#: part/models.py:817 part/templates/part/part_base.html:274
+#: templates/js/translated/part.js:618 templates/js/translated/part.js:1221
+#: templates/js/translated/stock.js:1560
msgid "IPN"
msgstr ""
-#: part/models.py:816
+#: part/models.py:818
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:822
+#: part/models.py:824
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:823 part/templates/part/part_base.html:281
-#: report/models.py:200 templates/js/translated/part.js:616
+#: part/models.py:825 part/templates/part/part_base.html:281
+#: report/models.py:200 templates/js/translated/part.js:622
msgid "Revision"
msgstr ""
-#: part/models.py:845
+#: part/models.py:847
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:892 part/templates/part/part_base.html:347
+#: part/models.py:894 part/templates/part/part_base.html:347
msgid "Default Supplier"
msgstr ""
-#: part/models.py:893
+#: part/models.py:895
msgid "Default supplier part"
msgstr ""
-#: part/models.py:900
+#: part/models.py:902
msgid "Default Expiry"
msgstr ""
-#: part/models.py:901
+#: part/models.py:903
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:906 part/templates/part/part_base.html:196
+#: part/models.py:908 part/templates/part/part_base.html:196
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:907
+#: part/models.py:909
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:914
+#: part/models.py:916
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:920
+#: part/models.py:922
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:926
+#: part/models.py:928
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:932
+#: part/models.py:934
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:937
+#: part/models.py:939
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:942
+#: part/models.py:944
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:946 plugin/models.py:46
-#: templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:96
-#: templates/js/translated/table_filters.js:295
-#: templates/js/translated/table_filters.js:417
-msgid "Active"
-msgstr ""
-
-#: part/models.py:947
+#: part/models.py:949
msgid "Is this part active?"
msgstr ""
-#: part/models.py:952
+#: part/models.py:954
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:957
+#: part/models.py:959
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:960
+#: part/models.py:962
msgid "BOM checksum"
msgstr ""
-#: part/models.py:960
+#: part/models.py:962
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:963
+#: part/models.py:965
msgid "BOM checked by"
msgstr ""
-#: part/models.py:965
+#: part/models.py:967
msgid "BOM checked date"
msgstr ""
-#: part/models.py:969
+#: part/models.py:971
msgid "Creation User"
msgstr ""
-#: part/models.py:1781
+#: part/models.py:1783
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2326
+#: part/models.py:2333
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2343
+#: part/models.py:2350
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2363 templates/js/translated/part.js:1707
-#: templates/js/translated/stock.js:1276
+#: part/models.py:2370 templates/js/translated/part.js:1714
+#: templates/js/translated/stock.js:1284
msgid "Test Name"
msgstr ""
-#: part/models.py:2364
+#: part/models.py:2371
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2376
msgid "Test Description"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2377
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2375 templates/js/translated/part.js:1716
+#: part/models.py:2382 templates/js/translated/part.js:1723
#: templates/js/translated/table_filters.js:281
msgid "Required"
msgstr ""
-#: part/models.py:2376
+#: part/models.py:2383
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2381 templates/js/translated/part.js:1724
+#: part/models.py:2388 templates/js/translated/part.js:1731
msgid "Requires Value"
msgstr ""
-#: part/models.py:2382
+#: part/models.py:2389
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2387 templates/js/translated/part.js:1731
+#: part/models.py:2394 templates/js/translated/part.js:1738
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2388
+#: part/models.py:2395
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2399
+#: part/models.py:2406
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2435
+#: part/models.py:2442
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2443
+#: part/models.py:2450
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2450
+#: part/models.py:2457
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2480
+#: part/models.py:2487
msgid "Parent Part"
msgstr ""
-#: part/models.py:2482 part/models.py:2531 part/models.py:2532
-#: templates/InvenTree/settings/settings.html:178
+#: part/models.py:2489 part/models.py:2538 part/models.py:2539
+#: templates/InvenTree/settings/settings.html:181
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2484
+#: part/models.py:2491
msgid "Data"
msgstr ""
-#: part/models.py:2484
+#: part/models.py:2491
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2536 templates/InvenTree/settings/settings.html:187
+#: part/models.py:2543 templates/InvenTree/settings/settings.html:190
msgid "Default Value"
msgstr ""
-#: part/models.py:2537
+#: part/models.py:2544
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2614
+#: part/models.py:2621
msgid "Select parent part"
msgstr ""
-#: part/models.py:2622
+#: part/models.py:2629
msgid "Sub part"
msgstr ""
-#: part/models.py:2623
+#: part/models.py:2630
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2629
+#: part/models.py:2636
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2631 templates/js/translated/bom.js:566
-#: templates/js/translated/bom.js:640
+#: part/models.py:2638 templates/js/translated/bom.js:578
+#: templates/js/translated/bom.js:652
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2638
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2634
+#: part/models.py:2641
msgid "Overage"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2642
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2638
+#: part/models.py:2645
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2641
+#: part/models.py:2648
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2643
+#: part/models.py:2650
msgid "Checksum"
msgstr ""
-#: part/models.py:2643
+#: part/models.py:2650
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2647 templates/js/translated/bom.js:657
+#: part/models.py:2654 templates/js/translated/bom.js:669
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2648
+#: part/models.py:2655
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2653 templates/js/translated/bom.js:649
+#: part/models.py:2660 templates/js/translated/bom.js:661
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2654
+#: part/models.py:2661
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2739 stock/models.py:355
+#: part/models.py:2746 stock/models.py:357
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2748 part/models.py:2750
+#: part/models.py:2755 part/models.py:2757
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2879
+#: part/models.py:2886
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2908
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2920
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2928
msgid "Substitute part"
msgstr ""
-#: part/models.py:2932
+#: part/models.py:2939
msgid "Part 1"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2943
msgid "Part 2"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2943
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2968
+#: part/models.py:2975
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4327,7 +4418,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:253
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:270
msgid "BOM actions"
msgstr ""
@@ -4499,7 +4590,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:348
msgid "Duplicate Part"
msgstr ""
@@ -4533,145 +4624,149 @@ msgid "Showing stock for all variants of %(full_name)s"
msgstr ""
#: part/templates/part/detail.html:43
+msgid "Part Stock Allocations"
+msgstr ""
+
+#: part/templates/part/detail.html:60
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:48
+#: part/templates/part/detail.html:65
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:105
+#: part/templates/part/detail.html:122
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:142
+#: part/templates/part/detail.html:159
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:146
+#: part/templates/part/detail.html:163
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:147
+#: part/templates/part/detail.html:164
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:174
+#: part/templates/part/detail.html:191
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:45
+#: part/templates/part/detail.html:228 part/templates/part/part_sidebar.html:49
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:215 part/templates/part/detail.html:216
+#: part/templates/part/detail.html:232 part/templates/part/detail.html:233
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:236 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:253 part/templates/part/part_sidebar.html:17
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:241
+#: part/templates/part/detail.html:258
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:245 templates/js/translated/bom.js:70
+#: part/templates/part/detail.html:262 templates/js/translated/bom.js:70
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:247
+#: part/templates/part/detail.html:264
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:257
+#: part/templates/part/detail.html:274
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:259 templates/js/translated/part.js:272
+#: part/templates/part/detail.html:276 templates/js/translated/part.js:272
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:278
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:266
+#: part/templates/part/detail.html:283
msgid "New BOM Item"
msgstr ""
-#: part/templates/part/detail.html:267
+#: part/templates/part/detail.html:284
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:280
+#: part/templates/part/detail.html:297
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:297
+#: part/templates/part/detail.html:314
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:322
+#: part/templates/part/detail.html:339
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:332
+#: part/templates/part/detail.html:349
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:360
+#: part/templates/part/detail.html:377
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:393
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:558
+#: part/templates/part/detail.html:575
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:559
+#: part/templates/part/detail.html:576
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:608
+#: part/templates/part/detail.html:625
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:652
+#: part/templates/part/detail.html:682
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:660
+#: part/templates/part/detail.html:690
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:755
+#: part/templates/part/detail.html:785
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:812
+#: part/templates/part/detail.html:842
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:925
+#: part/templates/part/detail.html:955
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:937
+#: part/templates/part/detail.html:967
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:949
+#: part/templates/part/detail.html:979
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1038
+#: part/templates/part/detail.html:1068
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4786,7 +4881,7 @@ msgstr ""
#: templates/js/translated/company.js:508
#: templates/js/translated/company.js:765
#: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:527 templates/js/translated/part.js:604
+#: templates/js/translated/part.js:533 templates/js/translated/part.js:610
msgid "Inactive"
msgstr ""
@@ -4805,10 +4900,6 @@ msgstr ""
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1294
-msgid "On Order"
-msgstr ""
-
#: part/templates/part/part_base.html:210 templates/InvenTree/index.html:178
msgid "Required for Build Orders"
msgstr ""
@@ -4821,12 +4912,12 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:678
+#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:690
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1125
-#: templates/js/translated/part.js:1298
+#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1132
+#: templates/js/translated/part.js:1305
msgid "Building"
msgstr ""
@@ -4878,7 +4969,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:632
+#: templates/js/translated/bom.js:644
msgid "No supplier pricing available"
msgstr ""
@@ -4920,7 +5011,12 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/templates/part/part_sidebar.html:41
+#: part/templates/part/part_sidebar.html:31
+#: stock/templates/stock/stock_sidebar.html:8
+msgid "Allocations"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:45
msgid "Test Templates"
msgstr ""
@@ -4993,7 +5089,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:626
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:638
msgid "Supplier Cost"
msgstr ""
@@ -5015,7 +5111,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1690
+#: part/templates/part/prices.html:215 part/views.py:1699
msgid "Add Internal Price Break"
msgstr ""
@@ -5035,9 +5131,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:588
-#: templates/js/translated/part.js:491 templates/js/translated/part.js:1115
-#: templates/js/translated/part.js:1302
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:600
+#: templates/js/translated/part.js:497 templates/js/translated/part.js:1122
+#: templates/js/translated/part.js:1309
msgid "No Stock"
msgstr ""
@@ -5054,116 +5150,116 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:116
+#: part/templatetags/inventree_extras.py:125
msgid "Unknown database"
msgstr ""
-#: part/views.py:92
+#: part/views.py:93
msgid "Set Part Category"
msgstr ""
-#: part/views.py:142
+#: part/views.py:143
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:214
+#: part/views.py:215
msgid "Match References"
msgstr ""
-#: part/views.py:502
+#: part/views.py:511
msgid "None"
msgstr ""
-#: part/views.py:561
+#: part/views.py:570
msgid "Part QR Code"
msgstr ""
-#: part/views.py:663
+#: part/views.py:672
msgid "Select Part Image"
msgstr ""
-#: part/views.py:689
+#: part/views.py:698
msgid "Updated part image"
msgstr ""
-#: part/views.py:692
+#: part/views.py:701
msgid "Part image not found"
msgstr ""
-#: part/views.py:766
+#: part/views.py:775
msgid "Match Parts"
msgstr ""
-#: part/views.py:1101
+#: part/views.py:1110
msgid "Export Bill of Materials"
msgstr ""
-#: part/views.py:1150
+#: part/views.py:1159
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1157
+#: part/views.py:1166
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1166
+#: part/views.py:1175
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1315
+#: part/views.py:1324
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1325
+#: part/views.py:1334
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1332
+#: part/views.py:1341
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1391 templates/js/translated/part.js:315
+#: part/views.py:1400 templates/js/translated/part.js:315
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1429
+#: part/views.py:1438
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1435
+#: part/views.py:1444
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1444
+#: part/views.py:1453
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1545
+#: part/views.py:1554
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1601
+#: part/views.py:1610
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1623
+#: part/views.py:1632
msgid "Added new price break"
msgstr ""
-#: part/views.py:1699
+#: part/views.py:1708
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1707
+#: part/views.py:1716
msgid "Delete Internal Price Break"
msgstr ""
-#: plugin/integration.py:124
+#: plugin/integration.py:138
msgid "No author found"
msgstr ""
-#: plugin/integration.py:136
+#: plugin/integration.py:152
msgid "No date found"
msgstr ""
@@ -5191,7 +5287,7 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:195
+#: plugin/models.py:199
msgid "Plugin"
msgstr ""
@@ -5357,33 +5453,33 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:517 stock/templates/stock/item_base.html:156
+#: stock/models.py:519 stock/templates/stock/item_base.html:156
#: templates/js/translated/build.js:293 templates/js/translated/build.js:697
#: templates/js/translated/build.js:1073
#: templates/js/translated/model_renderers.js:95
#: templates/js/translated/order.js:99 templates/js/translated/order.js:1945
-#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:415
+#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:423
msgid "Serial Number"
-msgstr ""
+msgstr "일련번호"
#: report/templates/report/inventree_test_report_base.html:88
msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:1948
+#: stock/models.py:1976
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:1954
+#: stock/models.py:1982
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:49
+#: templates/InvenTree/settings/plugin.html:50
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2367
+#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2525
msgid "Date"
msgstr ""
@@ -5396,23 +5492,27 @@ msgid "Fail"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:123
-#: stock/templates/stock/stock_sidebar.html:12
+#: stock/templates/stock/stock_sidebar.html:16
msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:578 templates/js/translated/stock.js:748
-#: templates/js/translated/stock.js:2627
+#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756
+#: templates/js/translated/stock.js:2785
msgid "Serial"
msgstr ""
-#: stock/api.py:478
+#: stock/api.py:476
msgid "Quantity is required"
msgstr ""
-#: stock/forms.py:77 stock/forms.py:251 stock/models.py:574
+#: stock/api.py:483
+msgid "Valid part must be supplied"
+msgstr ""
+
+#: stock/forms.py:77 stock/forms.py:251 stock/models.py:576
#: stock/templates/stock/item_base.html:193
-#: templates/js/translated/stock.js:1701
+#: templates/js/translated/stock.js:1709
msgid "Expiry Date"
msgstr ""
@@ -5460,228 +5560,228 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:60 stock/models.py:611
+#: stock/models.py:62 stock/models.py:613
#: stock/templates/stock/item_base.html:416
msgid "Owner"
msgstr ""
-#: stock/models.py:61 stock/models.py:612
+#: stock/models.py:63 stock/models.py:614
msgid "Select Owner"
msgstr ""
-#: stock/models.py:336
+#: stock/models.py:338
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:372
+#: stock/models.py:374
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:382 stock/models.py:391
+#: stock/models.py:384 stock/models.py:393
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:383
+#: stock/models.py:385
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:405
+#: stock/models.py:407
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:413
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:418
+#: stock/models.py:420
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:461
+#: stock/models.py:463
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:470
+#: stock/models.py:472
msgid "Base part"
msgstr ""
-#: stock/models.py:478
+#: stock/models.py:480
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:484 stock/templates/stock/location.html:16
+#: stock/models.py:486 stock/templates/stock/location.html:16
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:487
+#: stock/models.py:489
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:494
+#: stock/models.py:496
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:500 stock/templates/stock/item_base.html:298
+#: stock/models.py:502 stock/templates/stock/item_base.html:298
msgid "Installed In"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:505
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:521
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:535
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:537
+#: stock/models.py:539
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:546
+#: stock/models.py:548
msgid "Source Build"
msgstr ""
-#: stock/models.py:548
+#: stock/models.py:550
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:559
+#: stock/models.py:561
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:562
+#: stock/models.py:564
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:568
+#: stock/models.py:570
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:575
+#: stock/models.py:577
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:588
+#: stock/models.py:590
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:588
+#: stock/models.py:590
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:598 stock/templates/stock/item.html:111
+#: stock/models.py:600 stock/templates/stock/item.html:128
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:607
+#: stock/models.py:609
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1068
+#: stock/models.py:1096
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1074
+#: stock/models.py:1102
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1080
+#: stock/models.py:1108
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1083
+#: stock/models.py:1111
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1086
+#: stock/models.py:1114
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1093
+#: stock/models.py:1121
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1164
+#: stock/models.py:1192
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1167
+#: stock/models.py:1195
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1170
+#: stock/models.py:1198
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1173
+#: stock/models.py:1201
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1176
+#: stock/models.py:1204
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1179
+#: stock/models.py:1207
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1186 stock/serializers.py:774
+#: stock/models.py:1214 stock/serializers.py:775
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1190
+#: stock/models.py:1218
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1194
+#: stock/models.py:1222
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1198
+#: stock/models.py:1226
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1369
+#: stock/models.py:1397
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1868
+#: stock/models.py:1896
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1925
+#: stock/models.py:1953
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1931
+#: stock/models.py:1959
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1949
+#: stock/models.py:1977
msgid "Test name"
msgstr ""
-#: stock/models.py:1955 templates/js/translated/table_filters.js:271
+#: stock/models.py:1983 templates/js/translated/table_filters.js:271
msgid "Test result"
msgstr ""
-#: stock/models.py:1961
+#: stock/models.py:1989
msgid "Test output value"
msgstr ""
-#: stock/models.py:1968
+#: stock/models.py:1996
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1974
+#: stock/models.py:2002
msgid "Test notes"
msgstr ""
@@ -5706,7 +5806,7 @@ msgstr ""
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:326 stock/serializers.py:731 stock/serializers.py:972
+#: stock/serializers.py:326 stock/serializers.py:732 stock/serializers.py:973
msgid "Destination stock location"
msgstr ""
@@ -5718,63 +5818,63 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:588
+#: stock/serializers.py:589
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:592
+#: stock/serializers.py:593
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:597
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:626
+#: stock/serializers.py:627
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:632
+#: stock/serializers.py:633
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:640
+#: stock/serializers.py:641
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:650 stock/serializers.py:880
+#: stock/serializers.py:651 stock/serializers.py:881
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:738
+#: stock/serializers.py:739
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:743
+#: stock/serializers.py:744
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:744
+#: stock/serializers.py:745
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:749
+#: stock/serializers.py:750
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:750
+#: stock/serializers.py:751
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:760
+#: stock/serializers.py:761
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:842
+#: stock/serializers.py:843
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:870
+#: stock/serializers.py:871
msgid "Stock transaction notes"
msgstr ""
@@ -5787,47 +5887,51 @@ msgid "New Entry"
msgstr ""
#: stock/templates/stock/item.html:48
-msgid "Child Stock Items"
-msgstr ""
-
-#: stock/templates/stock/item.html:55
-msgid "This stock item does not have any child items"
+msgid "Stock Item Allocations"
msgstr ""
#: stock/templates/stock/item.html:64
-#: stock/templates/stock/stock_sidebar.html:8
-msgid "Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:57
-msgid "Test Report"
+msgid "Child Stock Items"
msgstr ""
#: stock/templates/stock/item.html:72
+msgid "This stock item does not have any child items"
+msgstr ""
+
+#: stock/templates/stock/item.html:81
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:57
+msgid "Test Report"
+msgstr ""
+
+#: stock/templates/stock/item.html:89
msgid "Delete Test Data"
msgstr ""
-#: stock/templates/stock/item.html:76
+#: stock/templates/stock/item.html:93
msgid "Add Test Data"
msgstr ""
-#: stock/templates/stock/item.html:133
+#: stock/templates/stock/item.html:150
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:137 stock/views.py:482
+#: stock/templates/stock/item.html:154 stock/views.py:482
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304
+#: stock/templates/stock/item.html:309 stock/templates/stock/item.html:334
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:324
+#: stock/templates/stock/item.html:354
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:338
+#: stock/templates/stock/item.html:368
msgid "Delete Test Result"
msgstr ""
@@ -5952,7 +6056,7 @@ msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:206
-#: templates/js/translated/stock.js:1714
+#: templates/js/translated/stock.js:1722
msgid "Last Updated"
msgstr ""
@@ -6111,7 +6215,7 @@ msgid "Sublocations"
msgstr ""
#: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164
-#: templates/stats.html:97 users/models.py:42
+#: templates/stats.html:109 users/models.py:42
msgid "Stock Locations"
msgstr ""
@@ -6135,7 +6239,7 @@ msgstr ""
msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/stock_sidebar.html:16
+#: stock/templates/stock/stock_sidebar.html:20
msgid "Child Items"
msgstr ""
@@ -6164,7 +6268,7 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:162
+#: stock/views.py:162 templates/js/translated/stock.js:139
msgid "Edit Stock Location"
msgstr ""
@@ -6204,7 +6308,7 @@ msgstr ""
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:727 templates/js/translated/stock.js:1066
+#: stock/views.py:727 templates/js/translated/stock.js:1074
msgid "Confirm stock adjustment"
msgstr ""
@@ -6212,7 +6316,7 @@ msgstr ""
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:324
+#: stock/views.py:760 templates/js/translated/stock.js:332
msgid "Edit Stock Item"
msgstr ""
@@ -6224,7 +6328,7 @@ msgstr ""
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1153 templates/js/translated/stock.js:304
+#: stock/views.py:1153 templates/js/translated/stock.js:312
msgid "Duplicate Stock Item"
msgstr ""
@@ -6262,12 +6366,24 @@ msgstr ""
#: templates/404.html:5 templates/404.html:11
msgid "Page Not Found"
-msgstr ""
+msgstr "페이지를 찾을 수 없습니다."
#: templates/404.html:14
msgid "The requested page does not exist"
msgstr ""
+#: templates/500.html:5 templates/500.html:11
+msgid "Internal Server Error"
+msgstr "내부 서버 오류"
+
+#: templates/500.html:14
+msgid "The InvenTree server raised an internal error"
+msgstr ""
+
+#: templates/500.html:15
+msgid "Refer to the error log in the admin interface for further details"
+msgstr ""
+
#: templates/503.html:10 templates/503.html:35
msgid "Site is in Maintenance"
msgstr ""
@@ -6374,25 +6490,25 @@ msgstr ""
#: templates/InvenTree/settings/currencies.html:49
msgid "Update Now"
-msgstr ""
+msgstr "지금 업데이트"
#: templates/InvenTree/settings/global.html:9
msgid "Server Settings"
-msgstr ""
+msgstr "서버 설정"
#: templates/InvenTree/settings/login.html:9
#: templates/InvenTree/settings/sidebar.html:29
msgid "Login Settings"
-msgstr ""
+msgstr "로그인 설정"
#: templates/InvenTree/settings/login.html:21 templates/account/signup.html:5
msgid "Signup"
msgstr ""
#: templates/InvenTree/settings/mixins/settings.html:5
-#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:118
+#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113
msgid "Settings"
-msgstr ""
+msgstr "설정"
#: templates/InvenTree/settings/mixins/urls.html:5
msgid "URLs"
@@ -6431,45 +6547,45 @@ msgstr ""
msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage."
msgstr ""
-#: templates/InvenTree/settings/plugin.html:32
+#: templates/InvenTree/settings/plugin.html:33
msgid "Plugins"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:37
+#: templates/InvenTree/settings/plugin.html:38
#: templates/js/translated/plugin.js:15
msgid "Install Plugin"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:46 templates/navbar.html:111
+#: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111
#: users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin.html:49
#: templates/InvenTree/settings/plugin_settings.html:28
msgid "Author"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:50
+#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin_settings.html:43
msgid "Version"
-msgstr ""
+msgstr "버전"
-#: templates/InvenTree/settings/plugin.html:91
+#: templates/InvenTree/settings/plugin.html:92
msgid "Inactive plugins"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:114
+#: templates/InvenTree/settings/plugin.html:115
msgid "Plugin Error Stack"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:123
+#: templates/InvenTree/settings/plugin.html:124
msgid "Stage"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:125
+#: templates/InvenTree/settings/plugin.html:126
msgid "Message"
-msgstr ""
+msgstr "메시지"
#: templates/InvenTree/settings/plugin_settings.html:10
#, python-format
@@ -6555,37 +6671,37 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:75
+#: templates/InvenTree/settings/settings.html:78
msgid "Edit Plugin Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:77
+#: templates/InvenTree/settings/settings.html:80
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:79
+#: templates/InvenTree/settings/settings.html:82
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:168
+#: templates/InvenTree/settings/settings.html:171
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:190
-#: templates/InvenTree/settings/settings.html:289
+#: templates/InvenTree/settings/settings.html:193
+#: templates/InvenTree/settings/settings.html:292
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:191
-#: templates/InvenTree/settings/settings.html:290
+#: templates/InvenTree/settings/settings.html:194
+#: templates/InvenTree/settings/settings.html:293
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:269
+#: templates/InvenTree/settings/settings.html:272
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:273
+#: templates/InvenTree/settings/settings.html:276
msgid "ID"
msgstr ""
@@ -6663,11 +6779,11 @@ msgstr ""
#: templates/InvenTree/settings/user.html:36
msgid "First Name"
-msgstr ""
+msgstr "이름"
#: templates/InvenTree/settings/user.html:40
msgid "Last Name"
-msgstr ""
+msgstr "성"
#: templates/InvenTree/settings/user.html:54
msgid "The following email addresses are associated with your account:"
@@ -6763,124 +6879,105 @@ msgstr ""
msgid "Remove multifactor"
msgstr ""
-#: templates/InvenTree/settings/user.html:219
-#: templates/InvenTree/settings/user_display.html:25
-msgid "Theme Settings"
+#: templates/InvenTree/settings/user.html:220
+msgid "Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:226
+msgid "Log out active sessions (except this one)"
msgstr ""
#: templates/InvenTree/settings/user.html:227
-#: templates/InvenTree/settings/user_display.html:35
-msgid "Select theme"
+msgid "Log Out Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:236
+msgid "unknown on unknown"
msgstr ""
#: templates/InvenTree/settings/user.html:237
+msgid "unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:241
+msgid "IP Address"
+msgstr "IP 주소"
+
+#: templates/InvenTree/settings/user.html:242
+msgid "Device"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:243
+msgid "Last Activity"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:252
+#, python-format
+msgid "%(time)s ago (this session)"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:254
+#, python-format
+msgid "%(time)s ago"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:266
+msgid "Do you really want to remove the selected email address?"
+msgstr "선택한 이메일 주소를 정말로 제거하시겠습니까?"
+
+#: templates/InvenTree/settings/user_display.html:25
+msgid "Theme Settings"
+msgstr "테마 설정"
+
+#: templates/InvenTree/settings/user_display.html:35
+msgid "Select theme"
+msgstr "테마 선택"
+
#: templates/InvenTree/settings/user_display.html:46
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:246
#: templates/InvenTree/settings/user_display.html:54
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:254
#: templates/InvenTree/settings/user_display.html:63
msgid "Select language"
msgstr ""
-#: templates/InvenTree/settings/user.html:270
#: templates/InvenTree/settings/user_display.html:79
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:272
#: templates/InvenTree/settings/user_display.html:81
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:279
#: templates/InvenTree/settings/user_display.html:88
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:281
#: templates/InvenTree/settings/user_display.html:91
msgid "Some languages are not complete"
msgstr ""
-#: templates/InvenTree/settings/user.html:283
#: templates/InvenTree/settings/user_display.html:93
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user.html:285
+#: templates/InvenTree/settings/user_display.html:95
+msgid "and hidden."
+msgstr ""
+
#: templates/InvenTree/settings/user_display.html:95
msgid "Show them too"
msgstr ""
-#: templates/InvenTree/settings/user.html:292
#: templates/InvenTree/settings/user_display.html:101
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user.html:293
-#, python-format
-msgid "Native language translation of the\n"
-" InvenTree web application is community contributed via crowdin. Contributions are\n"
-" welcomed and encouraged."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:302
-msgid "Active Sessions"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:308
-msgid "Log out active sessions (except this one)"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:309
-msgid "Log Out Active Sessions"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:318
-msgid "unknown on unknown"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:319
-msgid "unknown"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:323
-msgid "IP Address"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:324
-msgid "Device"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:325
-msgid "Last Activity"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:334
-#, python-format
-msgid "%(time)s ago (this session)"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:336
-#, python-format
-msgid "%(time)s ago"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:348
-msgid "Do you really want to remove the selected email address?"
-msgstr ""
-
-#: templates/InvenTree/settings/user_display.html:95
-msgid "and hidden."
-msgstr ""
-
#: templates/InvenTree/settings/user_display.html:102
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
@@ -6888,7 +6985,7 @@ msgstr ""
#: templates/InvenTree/settings/user_homepage.html:9
msgid "Home Page Settings"
-msgstr ""
+msgstr "홈 페이지 설정"
#: templates/InvenTree/settings/user_labels.html:9
msgid "Label Settings"
@@ -6899,9 +6996,9 @@ msgid "InvenTree Version Information"
msgstr ""
#: templates/about.html:11 templates/about.html:105
-#: templates/js/translated/bom.js:395 templates/js/translated/modals.js:53
-#: templates/js/translated/modals.js:573 templates/js/translated/modals.js:667
-#: templates/js/translated/modals.js:970 templates/modals.html:15
+#: templates/js/translated/bom.js:407 templates/js/translated/modals.js:53
+#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
+#: templates/js/translated/modals.js:983 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -6928,7 +7025,7 @@ msgstr ""
#: templates/about.html:58
msgid "API Version"
-msgstr ""
+msgstr "API 버전"
#: templates/about.html:63
msgid "Python Version"
@@ -7027,7 +7124,7 @@ msgstr ""
#: templates/account/password_reset.html:5
#: templates/account/password_reset.html:12
msgid "Password Reset"
-msgstr ""
+msgstr "비밀번호 재설정"
#: templates/account/password_reset.html:18
msgid "Forgotten your password? Enter your email address below, and we'll send you an email allowing you to reset it."
@@ -7052,11 +7149,11 @@ msgstr ""
#: templates/account/password_reset_from_key.html:18
msgid "Change password"
-msgstr ""
+msgstr "비밀번호 변경"
#: templates/account/password_reset_from_key.html:22
msgid "Your password is now changed."
-msgstr ""
+msgstr "비밀번호가 변경되었습니다."
#: templates/account/signup.html:11 templates/account/signup.html:22
msgid "Sign Up"
@@ -7065,7 +7162,7 @@ msgstr ""
#: templates/account/signup.html:13
#, python-format
msgid "Already have an account? Then please sign in."
-msgstr ""
+msgstr "이미 계정을 가지고 계십니까? 그렇다면 로그인 하세요."
#: templates/account/signup.html:27
msgid "Or use a SSO-provider for signup"
@@ -7142,15 +7239,15 @@ msgstr ""
#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54
msgid "Add Link"
-msgstr ""
+msgstr "링크 추가"
#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36
msgid "Add Attachment"
-msgstr ""
+msgstr "첨부파일 추가"
#: templates/base.html:97
msgid "Server Restart Required"
-msgstr ""
+msgstr "서버 재시작 필요"
#: templates/base.html:100
msgid "A configuration option has been changed which requires a server restart"
@@ -7178,13 +7275,13 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1103
+#: templates/js/translated/bom.js:1117
msgid "Required Quantity"
msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:579 templates/js/translated/build.js:1189
+#: templates/js/translated/bom.js:591 templates/js/translated/build.js:1189
#: templates/js/translated/build.js:1810
#: templates/js/translated/table_filters.js:178
msgid "Available"
@@ -7208,10 +7305,6 @@ msgstr ""
msgid "Click on the following link to view this part"
msgstr ""
-#: templates/email/low_stock_notification.html:17
-msgid "Total Stock"
-msgstr ""
-
#: templates/email/low_stock_notification.html:19
msgid "Minimum Quantity"
msgstr ""
@@ -7232,11 +7325,11 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1040
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1053
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1041
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1054
msgid "No response from the InvenTree server"
msgstr ""
@@ -7248,27 +7341,27 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1063
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1051
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1064
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1068
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1056
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1069
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1073
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1061
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1074
msgid "The requested resource could not be located on the server"
msgstr ""
@@ -7280,11 +7373,11 @@ msgstr ""
msgid "HTTP method not allowed at URL"
msgstr ""
-#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1065
+#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1078
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1079
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -7353,7 +7446,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:140
-#: templates/js/translated/modals.js:1030
+#: templates/js/translated/modals.js:1043
msgid "Invalid server response"
msgstr ""
@@ -7381,7 +7474,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1018
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026
msgid "Remove stock item"
msgstr ""
@@ -7428,12 +7521,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73
-#: templates/js/translated/order.js:369 templates/js/translated/stock.js:510
+#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74
-#: templates/js/translated/order.js:370 templates/js/translated/stock.js:511
+#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519
msgid "Select file format"
msgstr ""
@@ -7489,87 +7582,87 @@ msgstr ""
msgid "Remove substitute part"
msgstr ""
-#: templates/js/translated/bom.js:340
-msgid "Select and add a new variant item using the input below"
+#: templates/js/translated/bom.js:352
+msgid "Select and add a new substitute part using the input below"
msgstr ""
-#: templates/js/translated/bom.js:351
+#: templates/js/translated/bom.js:363
msgid "Are you sure you wish to remove this substitute part link?"
msgstr ""
-#: templates/js/translated/bom.js:357
+#: templates/js/translated/bom.js:369
msgid "Remove Substitute Part"
msgstr ""
-#: templates/js/translated/bom.js:396
+#: templates/js/translated/bom.js:408
msgid "Add Substitute"
msgstr ""
-#: templates/js/translated/bom.js:397
+#: templates/js/translated/bom.js:409
msgid "Edit BOM Item Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:516
+#: templates/js/translated/bom.js:528
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:520 templates/js/translated/build.js:1171
+#: templates/js/translated/bom.js:532 templates/js/translated/build.js:1171
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:525
+#: templates/js/translated/bom.js:537
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:597
+#: templates/js/translated/bom.js:609
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:612
+#: templates/js/translated/bom.js:624
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:619
+#: templates/js/translated/bom.js:631
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:668 templates/js/translated/bom.js:757
+#: templates/js/translated/bom.js:680 templates/js/translated/bom.js:769
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:728
+#: templates/js/translated/bom.js:740
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:730
+#: templates/js/translated/bom.js:742
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:732
+#: templates/js/translated/bom.js:744
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:734 templates/js/translated/bom.js:908
+#: templates/js/translated/bom.js:746 templates/js/translated/bom.js:920
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:736 templates/js/translated/bom.js:891
+#: templates/js/translated/bom.js:748 templates/js/translated/bom.js:903
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:830 templates/js/translated/build.js:915
+#: templates/js/translated/bom.js:842 templates/js/translated/build.js:915
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:886
+#: templates/js/translated/bom.js:898
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:1086 templates/js/translated/build.js:1155
+#: templates/js/translated/bom.js:1100 templates/js/translated/build.js:1155
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1108
+#: templates/js/translated/bom.js:1122
msgid "Inherited from parent BOM"
msgstr ""
@@ -7725,9 +7818,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1206
-#: templates/js/translated/part.js:1617 templates/js/translated/stock.js:1512
-#: templates/js/translated/stock.js:2321
+#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1213
+#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1520
+#: templates/js/translated/stock.js:2479
msgid "Select"
msgstr ""
@@ -7735,7 +7828,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2540
+#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2698
msgid "No user information"
msgstr ""
@@ -7808,34 +7901,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:511
-#: templates/js/translated/part.js:596
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:517
+#: templates/js/translated/part.js:602
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:515
-#: templates/js/translated/part.js:600
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:521
+#: templates/js/translated/part.js:606
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:690
+#: templates/js/translated/company.js:631 templates/js/translated/part.js:696
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:732
+#: templates/js/translated/company.js:668 templates/js/translated/part.js:738
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:733
+#: templates/js/translated/company.js:669 templates/js/translated/part.js:739
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:750
+#: templates/js/translated/company.js:688 templates/js/translated/part.js:756
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:762
+#: templates/js/translated/company.js:699 templates/js/translated/part.js:768
msgid "Delete Parameter"
msgstr ""
@@ -7844,12 +7937,12 @@ msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:420
+#: templates/js/translated/filters.js:429
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:421
+#: templates/js/translated/filters.js:430
msgid "false"
msgstr ""
@@ -7869,7 +7962,7 @@ msgstr ""
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:329
+#: templates/js/translated/filters.js:338
msgid "Create filter"
msgstr ""
@@ -7898,33 +7991,33 @@ msgstr ""
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1080 templates/modals.html:19
+#: templates/js/translated/forms.js:1082 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1471
+#: templates/js/translated/forms.js:1487
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1675
+#: templates/js/translated/forms.js:1691
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1895
+#: templates/js/translated/forms.js:1930
msgid "Clear input"
msgstr ""
#: templates/js/translated/helpers.js:19
msgid "YES"
-msgstr ""
+msgstr "예"
#: templates/js/translated/helpers.js:21
msgid "NO"
-msgstr ""
+msgstr "아니오"
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1042
+#: templates/js/translated/stock.js:1050
msgid "Select Stock Items"
msgstr ""
@@ -7974,61 +8067,61 @@ msgid "Select Label Template"
msgstr ""
#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
-#: templates/js/translated/modals.js:599
+#: templates/js/translated/modals.js:610
msgid "Cancel"
-msgstr ""
+msgstr "취소"
#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:666 templates/js/translated/modals.js:969
+#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:982
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
-msgstr ""
+msgstr "제출"
#: templates/js/translated/modals.js:118
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:381
+#: templates/js/translated/modals.js:392
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:540
+#: templates/js/translated/modals.js:551
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:598
+#: templates/js/translated/modals.js:609
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:655
+#: templates/js/translated/modals.js:666
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:921
+#: templates/js/translated/modals.js:934
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:921
+#: templates/js/translated/modals.js:934
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:946
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1030
+#: templates/js/translated/modals.js:1043
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1045
+#: templates/js/translated/modals.js:1058
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1046
+#: templates/js/translated/modals.js:1059
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1069
+#: templates/js/translated/modals.js:1082
msgid "Error requesting form data"
msgstr ""
@@ -8052,23 +8145,24 @@ msgstr ""
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:236
+#: templates/js/translated/model_renderers.js:249
+#: templates/js/translated/model_renderers.js:270
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:253
+#: templates/js/translated/model_renderers.js:287
msgid "Shipment ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:273
+#: templates/js/translated/model_renderers.js:307
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:310
+#: templates/js/translated/model_renderers.js:344
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:339
+#: templates/js/translated/model_renderers.js:373
msgid "Supplier Part ID"
msgstr ""
@@ -8116,7 +8210,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2123
+#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2131
msgid "Stock Status"
msgstr ""
@@ -8140,7 +8234,7 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:790 templates/js/translated/part.js:803
+#: templates/js/translated/order.js:790 templates/js/translated/part.js:809
msgid "No purchase orders found"
msgstr ""
@@ -8165,9 +8259,9 @@ msgid "Total"
msgstr ""
#: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163
-#: templates/js/translated/part.js:1834 templates/js/translated/part.js:2045
+#: templates/js/translated/part.js:1841 templates/js/translated/part.js:2052
msgid "Unit Price"
-msgstr ""
+msgstr "단가"
#: templates/js/translated/order.js:1083 templates/js/translated/order.js:2179
msgid "Total Price"
@@ -8181,7 +8275,7 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1166 templates/js/translated/part.js:935
+#: templates/js/translated/order.js:1166 templates/js/translated/part.js:942
msgid "Receive line item"
msgstr ""
@@ -8250,7 +8344,7 @@ msgid "Delete Stock Allocation"
msgstr ""
#: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048
-#: templates/js/translated/stock.js:1428
+#: templates/js/translated/stock.js:1436
msgid "Shipped to customer"
msgstr ""
@@ -8348,7 +8442,7 @@ msgstr ""
#: templates/js/translated/part.js:264
msgid "Copy Image"
-msgstr ""
+msgstr "이미지 복사"
#: templates/js/translated/part.js:265
msgid "Copy image from original part"
@@ -8378,144 +8472,148 @@ msgstr ""
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:412
+#: templates/js/translated/part.js:351
+msgid "Create Part Variant"
+msgstr ""
+
+#: templates/js/translated/part.js:418
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:414
+#: templates/js/translated/part.js:420
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:419
+#: templates/js/translated/part.js:425
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:421
+#: templates/js/translated/part.js:427
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:438
+#: templates/js/translated/part.js:444
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:448
+#: templates/js/translated/part.js:454
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:451
+#: templates/js/translated/part.js:457
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:475
+#: templates/js/translated/part.js:481
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:503 templates/js/translated/part.js:588
+#: templates/js/translated/part.js:509 templates/js/translated/part.js:594
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:507 templates/js/translated/part.js:592
+#: templates/js/translated/part.js:513 templates/js/translated/part.js:598
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:519
+#: templates/js/translated/part.js:525
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:529
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:638
+#: templates/js/translated/part.js:644
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1005
+#: templates/js/translated/part.js:1012
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1029
+#: templates/js/translated/part.js:1036
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1096 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:1363
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1266
+#: templates/js/translated/part.js:1273
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1289
+#: templates/js/translated/part.js:1296
#: templates/js/translated/table_filters.js:430
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1380 templates/js/translated/part.js:1552
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559
+#: templates/js/translated/stock.js:2440
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1396
+#: templates/js/translated/part.js:1403
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1571 templates/js/translated/stock.js:2301
+#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2459
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1635
+#: templates/js/translated/part.js:1642
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1649 templates/js/translated/stock.js:2345
+#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2503
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1693
+#: templates/js/translated/part.js:1700
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1744 templates/js/translated/stock.js:1234
+#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1242
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1745 templates/js/translated/stock.js:1235
+#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1243
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1751
+#: templates/js/translated/part.js:1758
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1773
+#: templates/js/translated/part.js:1780
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1787
+#: templates/js/translated/part.js:1794
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1812
+#: templates/js/translated/part.js:1819
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1867
+#: templates/js/translated/part.js:1874
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1868
+#: templates/js/translated/part.js:1875
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1969
+#: templates/js/translated/part.js:1976
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1988
+#: templates/js/translated/part.js:1995
msgid "Single Price Difference"
msgstr ""
@@ -8589,340 +8687,344 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:73
+#: templates/js/translated/stock.js:74
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:173
+#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:181
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/stock.js:93 templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:94 templates/js/translated/stock.js:183
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/stock.js:101
+#: templates/js/translated/stock.js:102
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:110
+#: templates/js/translated/stock.js:111
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:146
+#: templates/js/translated/stock.js:154
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:186
+#: templates/js/translated/stock.js:194
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:225
+#: templates/js/translated/stock.js:233
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:231
+#: templates/js/translated/stock.js:239
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:374
+#: templates/js/translated/stock.js:382
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:387
+#: templates/js/translated/stock.js:395
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:412
+#: templates/js/translated/stock.js:420
msgid "Find Serial Number"
-msgstr ""
+msgstr "일련번호 찾기"
-#: templates/js/translated/stock.js:416 templates/js/translated/stock.js:417
+#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425
msgid "Enter serial number"
-msgstr ""
+msgstr "일련번호를 입력하세요"
-#: templates/js/translated/stock.js:433
+#: templates/js/translated/stock.js:441
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:453
+#: templates/js/translated/stock.js:461
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:462
+#: templates/js/translated/stock.js:470
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:507
+#: templates/js/translated/stock.js:515
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:518
+#: templates/js/translated/stock.js:526
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:527
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:628
+#: templates/js/translated/stock.js:636
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:629
+#: templates/js/translated/stock.js:637
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:706
+#: templates/js/translated/stock.js:714
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:707
+#: templates/js/translated/stock.js:715
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:709
+#: templates/js/translated/stock.js:717
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:710
+#: templates/js/translated/stock.js:718
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:796
+#: templates/js/translated/stock.js:804
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:797
+#: templates/js/translated/stock.js:805
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:892
+#: templates/js/translated/stock.js:900
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:893
+#: templates/js/translated/stock.js:901
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:899
+#: templates/js/translated/stock.js:907
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:900
+#: templates/js/translated/stock.js:908
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:904
+#: templates/js/translated/stock.js:912
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:905
+#: templates/js/translated/stock.js:913
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:909
+#: templates/js/translated/stock.js:917
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:910 users/models.py:206
+#: templates/js/translated/stock.js:918 users/models.py:208
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:914 templates/stock_table.html:58
+#: templates/js/translated/stock.js:922 templates/stock_table.html:58
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1003
+#: templates/js/translated/stock.js:1011
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1003
+#: templates/js/translated/stock.js:1011
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1043
+#: templates/js/translated/stock.js:1051
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1201
+#: templates/js/translated/stock.js:1209
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1211
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1208
+#: templates/js/translated/stock.js:1216
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1230
+#: templates/js/translated/stock.js:1238
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1256
+#: templates/js/translated/stock.js:1264
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1313
+#: templates/js/translated/stock.js:1321
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1420
+#: templates/js/translated/stock.js:1428
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1424
+#: templates/js/translated/stock.js:1432
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1432
+#: templates/js/translated/stock.js:1440
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1438
+#: templates/js/translated/stock.js:1446
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1596
+#: templates/js/translated/stock.js:1604
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1601
+#: templates/js/translated/stock.js:1609
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1612
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/stock.js:1616
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1610
+#: templates/js/translated/stock.js:1618
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1616
+#: templates/js/translated/stock.js:1624
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1626
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1620
+#: templates/js/translated/stock.js:1628
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1625
+#: templates/js/translated/stock.js:1633
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1632
+#: templates/js/translated/stock.js:1640
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1634
+#: templates/js/translated/stock.js:1642
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1644
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1640
+#: templates/js/translated/stock.js:1648
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1698
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1763
+#: templates/js/translated/stock.js:1771
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1801
+#: templates/js/translated/stock.js:1809
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1822 templates/js/translated/stock.js:1870
+#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:1878
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1910
+#: templates/js/translated/stock.js:1918
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1937
+#: templates/js/translated/stock.js:1945
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1939
+#: templates/js/translated/stock.js:1947
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:2138
+#: templates/js/translated/stock.js:2146
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2152
+#: templates/js/translated/stock.js:2160
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2153
+#: templates/js/translated/stock.js:2161
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2377
+#: templates/js/translated/stock.js:2340
+msgid "Allocated Quantity"
+msgstr ""
+
+#: templates/js/translated/stock.js:2535
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:2399
+#: templates/js/translated/stock.js:2557
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2424
+#: templates/js/translated/stock.js:2582
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2443
+#: templates/js/translated/stock.js:2601
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2462
+#: templates/js/translated/stock.js:2620
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2480
+#: templates/js/translated/stock.js:2638
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2503
+#: templates/js/translated/stock.js:2661
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2511
+#: templates/js/translated/stock.js:2669
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2552
+#: templates/js/translated/stock.js:2710
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2553
+#: templates/js/translated/stock.js:2711
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2604
+#: templates/js/translated/stock.js:2762
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2655
+#: templates/js/translated/stock.js:2813
msgid "Uninstall Stock Item"
msgstr ""
@@ -9194,11 +9296,11 @@ msgstr ""
msgid "Sell"
msgstr ""
-#: templates/navbar.html:113
+#: templates/navbar.html:114
msgid "Logout"
msgstr ""
-#: templates/navbar.html:115
+#: templates/navbar.html:116
msgid "Login"
msgstr ""
@@ -9246,31 +9348,43 @@ msgstr ""
msgid "Server is deployed using docker"
msgstr ""
-#: templates/stats.html:40
-msgid "Server status"
+#: templates/stats.html:39
+msgid "Plugin Support"
msgstr ""
#: templates/stats.html:43
-msgid "Healthy"
+msgid "Plugin support enabled"
msgstr ""
#: templates/stats.html:45
-msgid "Issues detected"
+msgid "Plugin support disabled"
msgstr ""
#: templates/stats.html:52
-msgid "Background Worker"
+msgid "Server status"
msgstr ""
#: templates/stats.html:55
+msgid "Healthy"
+msgstr ""
+
+#: templates/stats.html:57
+msgid "Issues detected"
+msgstr ""
+
+#: templates/stats.html:64
+msgid "Background Worker"
+msgstr ""
+
+#: templates/stats.html:67
msgid "Background worker not running"
msgstr ""
-#: templates/stats.html:63
+#: templates/stats.html:75
msgid "Email Settings"
msgstr ""
-#: templates/stats.html:66
+#: templates/stats.html:78
msgid "Email settings not configured"
msgstr ""
@@ -9366,35 +9480,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:193
+#: users/models.py:195
msgid "Permission set"
msgstr ""
-#: users/models.py:201
+#: users/models.py:203
msgid "Group"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
msgid "View"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
msgid "Permission to view items"
msgstr ""
-#: users/models.py:206
+#: users/models.py:208
msgid "Permission to add items"
msgstr ""
-#: users/models.py:208
+#: users/models.py:210
msgid "Change"
msgstr ""
-#: users/models.py:208
+#: users/models.py:210
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:210
+#: users/models.py:212
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/nl/LC_MESSAGES/django.po b/InvenTree/locale/nl/LC_MESSAGES/django.po
index 65bba6b9d6..73f5ea6755 100644
--- a/InvenTree/locale/nl/LC_MESSAGES/django.po
+++ b/InvenTree/locale/nl/LC_MESSAGES/django.po
@@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-01-10 03:54+0000\n"
-"PO-Revision-Date: 2022-01-10 03:57\n"
+"POT-Creation-Date: 2022-01-29 00:17+0000\n"
+"PO-Revision-Date: 2022-01-29 01:11\n"
"Last-Translator: \n"
"Language-Team: Dutch\n"
"Language: nl_NL\n"
@@ -18,15 +18,15 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 138\n"
-#: InvenTree/api.py:64
+#: InvenTree/api.py:55
msgid "API endpoint not found"
msgstr "API eindpunt niet gevonden"
-#: InvenTree/api.py:110
+#: InvenTree/api.py:101
msgid "No action specified"
msgstr "Geen actie gespecificeerd"
-#: InvenTree/api.py:124
+#: InvenTree/api.py:116
msgid "No matching action found"
msgstr "Geen overeenkomende actie gevonden"
@@ -80,41 +80,41 @@ msgstr "E-mailadres bevestiging"
msgid "You must type the same email each time."
msgstr "Er moet hetzelfde e-mailadres ingevoerd worden."
-#: InvenTree/helpers.py:437
+#: InvenTree/helpers.py:439
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr "Dubbel serienummer: {n}"
-#: InvenTree/helpers.py:444 order/models.py:279 order/models.py:420
+#: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425
#: stock/views.py:1231
msgid "Invalid quantity provided"
msgstr "Ongeldige hoeveeldheid ingevoerd"
-#: InvenTree/helpers.py:447
+#: InvenTree/helpers.py:449
msgid "Empty serial number string"
msgstr "Leeg serienummer"
-#: InvenTree/helpers.py:469 InvenTree/helpers.py:472 InvenTree/helpers.py:475
-#: InvenTree/helpers.py:500
+#: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477
+#: InvenTree/helpers.py:502
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Ongeldige groep: {g}"
-#: InvenTree/helpers.py:510
+#: InvenTree/helpers.py:512
#, python-brace-format
msgid "Invalid group {group}"
msgstr ""
-#: InvenTree/helpers.py:516
+#: InvenTree/helpers.py:518
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:522
+#: InvenTree/helpers.py:524
msgid "No serial numbers found"
msgstr "Geen serienummers gevonden"
-#: InvenTree/helpers.py:526
+#: InvenTree/helpers.py:528
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Aantal unieke serienummer ({s}) moet overeenkomen met de hoeveelheid ({q})"
@@ -127,7 +127,7 @@ msgstr "Ontbrekend bestand"
msgid "Missing external link"
msgstr "Externe link ontbreekt"
-#: InvenTree/models.py:132 stock/models.py:1967
+#: InvenTree/models.py:132 stock/models.py:1995
#: templates/js/translated/attachment.js:119
msgid "Attachment"
msgstr "Bijlage"
@@ -137,15 +137,15 @@ msgid "Select file to attach"
msgstr "Bestand als bijlage selecteren"
#: InvenTree/models.py:139 company/models.py:131 company/models.py:348
-#: company/models.py:564 order/models.py:124 part/models.py:828
+#: company/models.py:564 order/models.py:127 part/models.py:830
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1317
+#: templates/js/translated/company.js:829 templates/js/translated/part.js:1324
msgid "Link"
msgstr "Link"
-#: InvenTree/models.py:140 build/models.py:330 part/models.py:829
-#: stock/models.py:527
+#: InvenTree/models.py:140 build/models.py:332 part/models.py:831
+#: stock/models.py:529
msgid "Link to external URL"
msgstr "Link naar externe URL"
@@ -157,10 +157,11 @@ msgstr "Opmerking"
msgid "File comment"
msgstr "Bijlage opmerking"
-#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213
-#: common/models.py:1214 part/models.py:2258 part/models.py:2278
+#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1223
+#: common/models.py:1224 common/models.py:1452 common/models.py:1453
+#: part/models.py:2265 part/models.py:2285
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2534
+#: templates/js/translated/stock.js:2692
msgid "User"
msgstr "Gebruiker"
@@ -197,42 +198,42 @@ msgstr "Fout bij hernoemen bestand"
msgid "Invalid choice"
msgstr "Ongeldige keuze"
-#: InvenTree/models.py:277 InvenTree/models.py:278 company/models.py:415
-#: label/models.py:112 part/models.py:772 part/models.py:2442
-#: plugin/models.py:40 report/models.py:181
+#: InvenTree/models.py:277 InvenTree/models.py:278 common/models.py:1438
+#: company/models.py:415 label/models.py:112 part/models.py:774
+#: part/models.py:2449 plugin/models.py:40 report/models.py:181
#: templates/InvenTree/settings/mixins/urls.html:13
-#: templates/InvenTree/settings/plugin.html:47
-#: templates/InvenTree/settings/plugin.html:124
+#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin.html:125
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:279
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:561
-#: templates/js/translated/part.js:700 templates/js/translated/part.js:1624
-#: templates/js/translated/stock.js:2327
+#: templates/InvenTree/settings/settings.html:282
+#: templates/js/translated/company.js:641 templates/js/translated/part.js:567
+#: templates/js/translated/part.js:706 templates/js/translated/part.js:1631
+#: templates/js/translated/stock.js:2485
msgid "Name"
msgstr "Naam"
-#: InvenTree/models.py:284 build/models.py:207
+#: InvenTree/models.py:284 build/models.py:209
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:73 label/models.py:119
-#: order/models.py:122 part/models.py:795 part/templates/part/category.html:74
+#: order/models.py:125 part/models.py:797 part/templates/part/category.html:74
#: part/templates/part/part_base.html:163
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:93
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:327 templates/js/translated/bom.js:540
+#: templates/js/translated/bom.js:339 templates/js/translated/bom.js:552
#: templates/js/translated/build.js:1682 templates/js/translated/company.js:345
#: templates/js/translated/company.js:551
#: templates/js/translated/company.js:840 templates/js/translated/order.js:836
#: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258
-#: templates/js/translated/part.js:620 templates/js/translated/part.js:992
-#: templates/js/translated/part.js:1077 templates/js/translated/part.js:1247
-#: templates/js/translated/part.js:1643 templates/js/translated/part.js:1712
-#: templates/js/translated/stock.js:1569 templates/js/translated/stock.js:2339
-#: templates/js/translated/stock.js:2384
+#: templates/js/translated/part.js:626 templates/js/translated/part.js:999
+#: templates/js/translated/part.js:1084 templates/js/translated/part.js:1254
+#: templates/js/translated/part.js:1650 templates/js/translated/part.js:1719
+#: templates/js/translated/stock.js:1577 templates/js/translated/stock.js:2314
+#: templates/js/translated/stock.js:2497 templates/js/translated/stock.js:2542
msgid "Description"
msgstr "Omschrijving"
@@ -244,7 +245,7 @@ msgstr "Omschrijving (optioneel)"
msgid "parent"
msgstr "overkoepelend"
-#: InvenTree/serializers.py:65 part/models.py:2727
+#: InvenTree/serializers.py:65 part/models.py:2734
msgid "Must be a valid number"
msgstr "Moet een geldig nummer zijn"
@@ -252,83 +253,83 @@ msgstr "Moet een geldig nummer zijn"
msgid "Filename"
msgstr "Bestandsnaam"
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:661
msgid "German"
msgstr "Duits"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:662
msgid "Greek"
msgstr "Grieks"
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:663
msgid "English"
msgstr "Engels"
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:664
msgid "Spanish"
msgstr "Spaans"
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:665
msgid "Spanish (Mexican)"
msgstr "Spaans (Mexicaans)"
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:666
msgid "French"
msgstr "Frans"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:667
msgid "Hebrew"
msgstr "Hebreeuws"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:668
msgid "Italian"
msgstr "Italiaans"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:669
msgid "Japanese"
msgstr "Japans"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:670
msgid "Korean"
msgstr "Koreaans"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:671
msgid "Dutch"
msgstr "Nederlands"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:672
msgid "Norwegian"
msgstr "Noors"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:673
msgid "Polish"
msgstr "Pools"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:674
msgid "Portugese"
msgstr "Portugees"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:675
msgid "Russian"
msgstr "Russisch"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:676
msgid "Swedish"
msgstr "Zweeds"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:677
msgid "Thai"
msgstr "Thais"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:678
msgid "Turkish"
msgstr "Turks"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:679
msgid "Vietnamese"
msgstr "Vietnamees"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:680
msgid "Chinese"
msgstr "Chinees"
@@ -374,7 +375,7 @@ msgstr "Kwijt"
msgid "Returned"
msgstr "Retour"
-#: InvenTree/status_codes.py:143 order/models.py:941
+#: InvenTree/status_codes.py:143 order/models.py:961
#: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255
msgid "Shipped"
msgstr "Verzonden"
@@ -455,7 +456,7 @@ msgstr "Splits van bovenliggend item"
msgid "Split child item"
msgstr "Splits onderliggende item"
-#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2064
+#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2072
msgid "Merged stock items"
msgstr ""
@@ -543,56 +544,56 @@ msgstr "Wachtwoordvelden komen niet overeen"
msgid "System Information"
msgstr "Systeeminformatie"
-#: barcodes/api.py:54 barcodes/api.py:151
+#: barcodes/api.py:54 barcodes/api.py:152
msgid "Must provide barcode_data parameter"
msgstr "De paramenter barcode_data moet worden aangeleverd"
-#: barcodes/api.py:127
+#: barcodes/api.py:128
msgid "No match found for barcode data"
msgstr "Geen overeenkomst gevonden voor barcode gegevens"
-#: barcodes/api.py:129
+#: barcodes/api.py:130
msgid "Match found for barcode data"
msgstr "Overeenkomst gevonden voor barcode gegevens"
-#: barcodes/api.py:154
+#: barcodes/api.py:155
msgid "Must provide stockitem parameter"
msgstr "Moet voorraaditem parameter aanleveren"
-#: barcodes/api.py:161
+#: barcodes/api.py:162
msgid "No matching stock item found"
msgstr "Geen overeenkomend voorraaditem gevonden"
-#: barcodes/api.py:191
+#: barcodes/api.py:193
msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:195
+#: barcodes/api.py:197
msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:199
+#: barcodes/api.py:201
msgid "Barcode already matches Part"
msgstr ""
-#: barcodes/api.py:205 barcodes/api.py:217
+#: barcodes/api.py:207 barcodes/api.py:219
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:223
+#: barcodes/api.py:225
msgid "Barcode associated with Stock Item"
msgstr ""
-#: build/forms.py:36 build/models.py:1286
+#: build/forms.py:36 build/models.py:1293
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:35 common/models.py:1253
+#: build/templates/build/detail.html:35 common/models.py:1263
#: company/forms.py:42 company/templates/company/supplier_part.html:251
-#: order/models.py:796 order/models.py:1207 order/serializers.py:810
+#: order/models.py:805 order/models.py:1229 order/serializers.py:816
#: order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:145
-#: part/forms.py:161 part/forms.py:177 part/models.py:2629
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144
+#: part/forms.py:160 part/forms.py:176 part/models.py:2636
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:962 part/templates/part/detail.html:1048
+#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -603,7 +604,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:181
#: stock/templates/stock/item_base.html:262
#: stock/templates/stock/item_base.html:270
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:555
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:567
#: templates/js/translated/build.js:295 templates/js/translated/build.js:495
#: templates/js/translated/build.js:689 templates/js/translated/build.js:699
#: templates/js/translated/build.js:1075 templates/js/translated/build.js:1422
@@ -611,11 +612,11 @@ msgstr ""
#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056
#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859
#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036
-#: templates/js/translated/order.js:2150 templates/js/translated/part.js:900
-#: templates/js/translated/part.js:1855 templates/js/translated/part.js:1978
-#: templates/js/translated/part.js:2056 templates/js/translated/stock.js:383
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:750
-#: templates/js/translated/stock.js:2519 templates/js/translated/stock.js:2621
+#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906
+#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985
+#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:391
+#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758
+#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2779
msgid "Quantity"
msgstr "Aantal"
@@ -623,9 +624,9 @@ msgstr "Aantal"
msgid "Enter quantity for build output"
msgstr "Voer hoeveelheid in voor build-output"
-#: build/forms.py:41 order/serializers.py:814 stock/forms.py:81
-#: stock/serializers.py:314 templates/js/translated/stock.js:230
-#: templates/js/translated/stock.js:384
+#: build/forms.py:41 order/serializers.py:820 stock/forms.py:81
+#: stock/serializers.py:314 templates/js/translated/stock.js:238
+#: templates/js/translated/stock.js:392
msgid "Serial Numbers"
msgstr "Serienummers"
@@ -649,18 +650,18 @@ msgstr "Annuleren bevestigen"
msgid "Confirm build cancellation"
msgstr "Bevestig annulering van de build"
-#: build/models.py:133
+#: build/models.py:135
msgid "Invalid choice for parent build"
msgstr "Ongeldige keuze voor bovenliggende build"
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:139 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:457
+#: templates/js/translated/build.js:457 templates/js/translated/stock.js:2290
msgid "Build Order"
msgstr "Productie-opdracht"
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:140 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:92
#: order/templates/order/so_sidebar.html:13
@@ -670,40 +671,40 @@ msgstr "Productie-opdracht"
msgid "Build Orders"
msgstr "Productie-opdrachten"
-#: build/models.py:198
+#: build/models.py:200
msgid "Build Order Reference"
msgstr "Productie-opdracht referentie"
-#: build/models.py:199 order/models.py:210 order/models.py:536
-#: order/models.py:803 part/models.py:2638
+#: build/models.py:201 order/models.py:213 order/models.py:541
+#: order/models.py:812 part/models.py:2645
#: 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/translated/bom.js:547 templates/js/translated/build.js:1179
+#: templates/js/translated/bom.js:559 templates/js/translated/build.js:1179
#: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144
msgid "Reference"
msgstr "Referentie"
-#: build/models.py:210
+#: build/models.py:212
msgid "Brief description of the build"
msgstr "Korte beschrijving van de build"
-#: build/models.py:219 build/templates/build/build_base.html:164
+#: build/models.py:221 build/templates/build/build_base.html:164
#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr "Bovenliggende bouw"
-#: build/models.py:220
+#: build/models.py:222
msgid "BuildOrder to which this build is allocated"
msgstr "Productie-opdracht waar dit product aan is toegewezen"
-#: build/models.py:225 build/templates/build/build_base.html:77
+#: build/models.py:227 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
-#: order/models.py:856 order/models.py:930
-#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
-#: part/models.py:2204 part/models.py:2220 part/models.py:2239
-#: part/models.py:2256 part/models.py:2358 part/models.py:2480
-#: part/models.py:2613 part/models.py:2920 part/serializers.py:658
+#: order/models.py:876 order/models.py:950
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359
+#: part/models.py:2211 part/models.py:2227 part/models.py:2246
+#: part/models.py:2263 part/models.py:2365 part/models.py:2487
+#: part/models.py:2620 part/models.py:2927 part/serializers.py:658
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -713,205 +714,205 @@ msgstr "Productie-opdracht waar dit product aan is toegewezen"
#: templates/InvenTree/search.html:80
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
-#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:326
-#: templates/js/translated/bom.js:505 templates/js/translated/build.js:680
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:338
+#: templates/js/translated/bom.js:517 templates/js/translated/build.js:680
#: templates/js/translated/build.js:1048 templates/js/translated/build.js:1419
#: templates/js/translated/build.js:1687 templates/js/translated/company.js:492
#: templates/js/translated/company.js:749 templates/js/translated/order.js:84
#: templates/js/translated/order.js:586 templates/js/translated/order.js:1004
#: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933
-#: templates/js/translated/order.js:2128 templates/js/translated/part.js:977
-#: templates/js/translated/part.js:1058 templates/js/translated/part.js:1225
-#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:719
-#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1526
-#: templates/js/translated/stock.js:2609
+#: templates/js/translated/order.js:2128 templates/js/translated/part.js:984
+#: templates/js/translated/part.js:1065 templates/js/translated/part.js:1232
+#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727
+#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1534
+#: templates/js/translated/stock.js:2767
msgid "Part"
msgstr "Onderdeel"
-#: build/models.py:233
+#: build/models.py:235
msgid "Select part to build"
msgstr "Selecteer onderdeel om te bouwen"
-#: build/models.py:238
+#: build/models.py:240
msgid "Sales Order Reference"
msgstr "Verkooporder referentie"
-#: build/models.py:242
+#: build/models.py:244
msgid "SalesOrder to which this build is allocated"
msgstr "Verkooporder waar dit product aan is toegewezen"
-#: build/models.py:247 templates/js/translated/build.js:1407
+#: build/models.py:249 templates/js/translated/build.js:1407
#: templates/js/translated/order.js:1564
msgid "Source Location"
msgstr "Bron Locatie"
-#: build/models.py:251
+#: build/models.py:253
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr "Selecteer de locatie waar de voorraad van de build vandaan moet komen (laat leeg om vanaf elke standaard locatie te nemen)"
-#: build/models.py:256
+#: build/models.py:258
msgid "Destination Location"
msgstr "Bestemmings Locatie"
-#: build/models.py:260
+#: build/models.py:262
msgid "Select location where the completed items will be stored"
msgstr "Selecteer locatie waar de voltooide items zullen worden opgeslagen"
-#: build/models.py:264
+#: build/models.py:266
msgid "Build Quantity"
msgstr "Bouwkwaliteit"
-#: build/models.py:267
+#: build/models.py:269
msgid "Number of stock items to build"
msgstr "Aantal voorraaditems om te bouwen"
-#: build/models.py:271
+#: build/models.py:273
msgid "Completed items"
msgstr "Voltooide voorraadartikelen"
-#: build/models.py:273
+#: build/models.py:275
msgid "Number of stock items which have been completed"
msgstr "Aantal voorraadartikelen die zijn voltooid"
-#: build/models.py:277 part/templates/part/part_base.html:234
+#: build/models.py:279 part/templates/part/part_base.html:234
msgid "Build Status"
msgstr "Bouwstatus"
-#: build/models.py:281
+#: build/models.py:283
msgid "Build status code"
msgstr "Bouwstatuscode"
-#: build/models.py:285 stock/models.py:531
+#: build/models.py:287 stock/models.py:533
msgid "Batch Code"
msgstr ""
-#: build/models.py:289
+#: build/models.py:291
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:126 part/models.py:967
+#: build/models.py:294 order/models.py:129 part/models.py:969
#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271
msgid "Creation Date"
msgstr "Aanmaakdatum"
-#: build/models.py:296 order/models.py:558
+#: build/models.py:298 order/models.py:563
msgid "Target completion date"
msgstr "Verwachte opleveringsdatum"
-#: build/models.py:297
+#: build/models.py:299
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:252
+#: build/models.py:302 order/models.py:255
#: templates/js/translated/build.js:1758
msgid "Completion Date"
msgstr "Opleveringsdatum"
-#: build/models.py:306
+#: build/models.py:308
msgid "completed by"
msgstr "voltooid door"
-#: build/models.py:314 templates/js/translated/build.js:1729
+#: build/models.py:316 templates/js/translated/build.js:1729
msgid "Issued by"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "User who issued this build order"
msgstr "Gebruiker die de productie-opdracht heeft gegeven"
-#: build/models.py:323 build/templates/build/build_base.html:185
-#: build/templates/build/detail.html:116 order/models.py:140
+#: build/models.py:325 build/templates/build/build_base.html:185
+#: build/templates/build/detail.html:116 order/models.py:143
#: order/templates/order/order_base.html:170
-#: order/templates/order/sales_order_base.html:182 part/models.py:971
+#: order/templates/order/sales_order_base.html:182 part/models.py:973
#: report/templates/report/inventree_build_order_base.html:159
#: templates/js/translated/build.js:1741 templates/js/translated/order.js:864
msgid "Responsible"
msgstr "Verantwoordelijke"
-#: build/models.py:324
+#: build/models.py:326
msgid "User responsible for this build order"
msgstr "Gebruiker verantwoordelijk voor deze productie-opdracht"
-#: build/models.py:329 build/templates/build/detail.html:102
+#: build/models.py:331 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:525
+#: part/templates/part/part_base.html:354 stock/models.py:527
#: stock/templates/stock/item_base.html:373
msgid "External Link"
msgstr "Externe Link"
-#: build/models.py:334 build/serializers.py:201
+#: build/models.py:336 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
-#: order/models.py:144 order/models.py:805 order/models.py:1051
+#: order/models.py:147 order/models.py:814 order/models.py:1071
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:17 part/models.py:956
-#: part/templates/part/detail.html:120 part/templates/part/part_sidebar.html:50
+#: order/templates/order/so_sidebar.html:17 part/models.py:958
+#: part/templates/part/detail.html:137 part/templates/part/part_sidebar.html:54
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:597
-#: stock/models.py:1867 stock/models.py:1973 stock/serializers.py:332
-#: stock/serializers.py:639 stock/serializers.py:737 stock/serializers.py:869
-#: stock/templates/stock/stock_sidebar.html:21
-#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:711
+#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:599
+#: stock/models.py:1895 stock/models.py:2001 stock/serializers.py:332
+#: stock/serializers.py:640 stock/serializers.py:738 stock/serializers.py:870
+#: stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:723
#: templates/js/translated/company.js:845 templates/js/translated/order.js:1149
#: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280
-#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1795
+#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1803
msgid "Notes"
msgstr "Opmerkingen"
-#: build/models.py:335
+#: build/models.py:337
msgid "Extra build notes"
msgstr "Opmerkingen over de bouw"
-#: build/models.py:710
+#: build/models.py:717
msgid "No build output specified"
msgstr "Geen bouwuitvoer opgegeven"
-#: build/models.py:713
+#: build/models.py:720
msgid "Build output is already completed"
msgstr "Bouwuitvoer is al voltooid"
-#: build/models.py:716
+#: build/models.py:723
msgid "Build output does not match Build Order"
msgstr "Product komt niet overeen met de productie-opdracht"
-#: build/models.py:1108
+#: build/models.py:1115
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1117
+#: build/models.py:1124
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1127
+#: build/models.py:1134
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1133 order/models.py:1167
+#: build/models.py:1140 order/models.py:1189
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1139
+#: build/models.py:1146
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1196
+#: build/models.py:1203
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1256 stock/templates/stock/item_base.html:345
+#: build/models.py:1263 stock/templates/stock/item_base.html:345
#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1660
#: templates/navbar.html:35
msgid "Build"
msgstr "Product"
-#: build/models.py:1257
+#: build/models.py:1264
msgid "Build to allocate parts"
msgstr "Bouw om onderdelen toe te wijzen"
-#: build/models.py:1273 build/serializers.py:388 order/serializers.py:690
-#: order/serializers.py:708 stock/serializers.py:577 stock/serializers.py:695
+#: build/models.py:1280 build/serializers.py:388 order/serializers.py:696
+#: order/serializers.py:714 stock/serializers.py:578 stock/serializers.py:696
#: stock/templates/stock/item_base.html:9
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:367
@@ -920,24 +921,24 @@ msgstr "Bouw om onderdelen toe te wijzen"
#: templates/js/translated/order.js:85 templates/js/translated/order.js:1577
#: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837
#: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030
-#: templates/js/translated/stock.js:555 templates/js/translated/stock.js:720
-#: templates/js/translated/stock.js:2470
+#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728
+#: templates/js/translated/stock.js:2628
msgid "Stock Item"
msgstr "Voorraadartikel"
-#: build/models.py:1274
+#: build/models.py:1281
msgid "Source stock item"
msgstr "Bron voorraadartikel"
-#: build/models.py:1287
+#: build/models.py:1294
msgid "Stock quantity to allocate to build"
msgstr "Voorraad hoeveelheid te alloceren aan bouw"
-#: build/models.py:1295
+#: build/models.py:1302
msgid "Install into"
msgstr "Installeren in"
-#: build/models.py:1296
+#: build/models.py:1303
msgid "Destination stock item"
msgstr "Bestemming voorraadartikel"
@@ -962,16 +963,16 @@ msgid "This build output is not fully allocated"
msgstr ""
#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294
-#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:730
-#: stock/serializers.py:971 stock/templates/stock/item_base.html:313
+#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:731
+#: stock/serializers.py:972 stock/templates/stock/item_base.html:313
#: templates/js/translated/barcode.js:384
#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:480
#: templates/js/translated/build.js:1087 templates/js/translated/order.js:508
#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955
#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044
-#: templates/js/translated/part.js:179 templates/js/translated/stock.js:556
-#: templates/js/translated/stock.js:721 templates/js/translated/stock.js:928
-#: templates/js/translated/stock.js:1676 templates/js/translated/stock.js:2411
+#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564
+#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936
+#: templates/js/translated/stock.js:1684 templates/js/translated/stock.js:2569
msgid "Location"
msgstr "Locatie"
@@ -980,12 +981,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:137
-#: build/templates/build/detail.html:63 order/models.py:552
+#: build/templates/build/detail.html:63 order/models.py:557
#: order/serializers.py:247 stock/templates/stock/item_base.html:187
#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1716
#: templates/js/translated/order.js:591 templates/js/translated/order.js:840
-#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1651
-#: templates/js/translated/stock.js:2488 templates/js/translated/stock.js:2637
+#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:2646 templates/js/translated/stock.js:2795
msgid "Status"
msgstr "Status"
@@ -1021,8 +1022,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:313 build/serializers.py:362 part/models.py:2753
-#: part/models.py:2912
+#: build/serializers.py:313 build/serializers.py:362 part/models.py:2760
+#: part/models.py:2919
msgid "BOM Item"
msgstr ""
@@ -1038,16 +1039,16 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:394 stock/serializers.py:584
+#: build/serializers.py:394 stock/serializers.py:585
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:408 order/models.py:277 order/serializers.py:240
-#: stock/models.py:365 stock/models.py:1077 stock/serializers.py:305
+#: build/serializers.py:408 order/models.py:280 order/serializers.py:240
+#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:450 order/serializers.py:741
+#: build/serializers.py:450 order/serializers.py:747
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1060,7 +1061,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:491 order/serializers.py:984
+#: build/serializers.py:491 order/serializers.py:990
msgid "Allocation items must be provided"
msgstr ""
@@ -1164,13 +1165,13 @@ msgid "Completed"
msgstr "Voltooid"
#: build/templates/build/build_base.html:171
-#: build/templates/build/detail.html:95 order/models.py:927
-#: order/models.py:1023 order/templates/order/sales_order_base.html:9
+#: build/templates/build/detail.html:95 order/models.py:947
+#: order/models.py:1043 order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/order.js:1218
+#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2304
msgid "Sales Order"
msgstr "Verkooporder"
@@ -1224,7 +1225,7 @@ msgstr "Voorraadbron"
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:50 order/models.py:878 stock/forms.py:136
+#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:136
#: templates/js/translated/order.js:592 templates/js/translated/order.js:1138
msgid "Destination"
msgstr "Bestemming"
@@ -1239,7 +1240,7 @@ msgstr "Toegewezen onderdelen"
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:331
-#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2644
+#: templates/js/translated/stock.js:1673 templates/js/translated/stock.js:2802
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:238
msgid "Batch"
@@ -1343,9 +1344,9 @@ msgstr ""
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:107
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:196
-#: part/templates/part/part_sidebar.html:48 stock/templates/stock/item.html:95
-#: stock/templates/stock/stock_sidebar.html:19
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:213
+#: part/templates/part/part_sidebar.html:52 stock/templates/stock/item.html:112
+#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr "Bijlagen"
@@ -1360,8 +1361,8 @@ msgstr "Bouw notities"
#: order/templates/order/purchase_order_detail.html:108
#: order/templates/order/sales_order_detail.html:127
#: order/templates/order/sales_order_detail.html:186
-#: part/templates/part/detail.html:124 stock/templates/stock/item.html:115
-#: stock/templates/stock/item.html:205
+#: part/templates/part/detail.html:141 stock/templates/stock/item.html:132
+#: stock/templates/stock/item.html:235
msgid "Edit Notes"
msgstr "Notities Bewerken"
@@ -1373,7 +1374,7 @@ msgstr ""
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:303
+#: build/templates/build/index.html:18 part/templates/part/detail.html:320
msgid "New Build Order"
msgstr ""
@@ -1453,23 +1454,23 @@ msgstr ""
msgid "Delete Build Order"
msgstr ""
-#: common/files.py:67
+#: common/files.py:65
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
-#: common/files.py:69
+#: common/files.py:67
msgid "Error reading file (invalid encoding)"
msgstr ""
-#: common/files.py:74
+#: common/files.py:72
msgid "Error reading file (invalid format)"
msgstr ""
-#: common/files.py:76
+#: common/files.py:74
msgid "Error reading file (incorrect dimension)"
msgstr ""
-#: common/files.py:78
+#: common/files.py:76
msgid "Error reading file (data could be corrupted)"
msgstr ""
@@ -1490,740 +1491,828 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr "Kies {name} bestand om te uploaden"
-#: common/models.py:344 common/models.py:998 common/models.py:1206
-msgid "Settings key (must be unique - case insensitive"
-msgstr "Instellingssleutel (moet uniek zijn - hoofdletter ongevoelig"
+#: common/models.py:352
+msgid "Settings key (must be unique - case insensitive)"
+msgstr ""
-#: common/models.py:346
+#: common/models.py:354
msgid "Settings value"
msgstr "Waarde van de instelling"
-#: common/models.py:380
+#: common/models.py:388
msgid "Chosen value is not a valid option"
msgstr "Gekozen waarde is geen geldige optie"
-#: common/models.py:400
+#: common/models.py:408
msgid "Value must be a boolean value"
msgstr "Waarde moet een booleaanse waarde zijn"
-#: common/models.py:411
+#: common/models.py:419
msgid "Value must be an integer value"
msgstr "Waarde moet een geheel getal zijn"
-#: common/models.py:434
+#: common/models.py:442
msgid "Key string must be unique"
msgstr "Sleutelreeks moet uniek zijn"
-#: common/models.py:553
+#: common/models.py:561
msgid "No group"
msgstr ""
-#: common/models.py:595
+#: common/models.py:603
msgid "Restart required"
msgstr ""
-#: common/models.py:596
+#: common/models.py:604
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:603
+#: common/models.py:611
msgid "InvenTree Instance Name"
msgstr "Inventree Instantie Naam"
-#: common/models.py:605
+#: common/models.py:613
msgid "String descriptor for the server instance"
msgstr "String-beschrijving voor de server instantie"
-#: common/models.py:609
+#: common/models.py:617
msgid "Use instance name"
msgstr "Gebruik de instantie naam"
-#: common/models.py:610
+#: common/models.py:618
msgid "Use the instance name in the title-bar"
msgstr "Gebruik de naam van de instantie in de titelbalk"
-#: common/models.py:616 company/models.py:100 company/models.py:101
+#: common/models.py:624 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr "Bedrijfsnaam"
-#: common/models.py:617
+#: common/models.py:625
msgid "Internal company name"
msgstr "Interne bedrijfsnaam"
-#: common/models.py:622
+#: common/models.py:630
msgid "Base URL"
msgstr "Basis URL"
-#: common/models.py:623
+#: common/models.py:631
msgid "Base URL for server instance"
msgstr "Basis URL voor serverinstantie"
-#: common/models.py:629
+#: common/models.py:637
msgid "Default Currency"
msgstr "Standaard valuta"
-#: common/models.py:630
+#: common/models.py:638
msgid "Default currency"
msgstr "Standaard valuta"
-#: common/models.py:636
+#: common/models.py:644
msgid "Download from URL"
msgstr "Download van URL"
-#: common/models.py:637
+#: common/models.py:645
msgid "Allow download of remote images and files from external URL"
msgstr "Download van afbeeldingen en bestanden vanaf een externe URL toestaan"
-#: common/models.py:643 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:651 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr "Barcode ondersteuning"
-#: common/models.py:644
+#: common/models.py:652
msgid "Enable barcode scanner support"
msgstr "Barcodescanner ondersteuning inschakelen"
-#: common/models.py:650
+#: common/models.py:658
msgid "IPN Regex"
msgstr "IPN Regex"
-#: common/models.py:651
+#: common/models.py:659
msgid "Regular expression pattern for matching Part IPN"
msgstr "Reguliere expressiepatroon voor het corresponderen van deel IPN"
-#: common/models.py:655
+#: common/models.py:663
msgid "Allow Duplicate IPN"
msgstr "Dubbele IPN toestaan"
-#: common/models.py:656
+#: common/models.py:664
msgid "Allow multiple parts to share the same IPN"
msgstr "Toestaan dat meerdere onderdelen dezelfde IPN gebruiken"
-#: common/models.py:662
+#: common/models.py:670
msgid "Allow Editing IPN"
msgstr "Bewerken IPN toestaan"
-#: common/models.py:663
+#: common/models.py:671
msgid "Allow changing the IPN value while editing a part"
msgstr "Sta het wijzigen van de IPN toe tijdens het bewerken van een onderdeel"
-#: common/models.py:669
+#: common/models.py:677
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:670
+#: common/models.py:678
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:676
+#: common/models.py:684
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:677
+#: common/models.py:685
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:683
+#: common/models.py:691
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:684
+#: common/models.py:692
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:690
+#: common/models.py:698
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:691
+#: common/models.py:699
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:697 part/models.py:2482 report/models.py:187
+#: common/models.py:705 part/models.py:2489 report/models.py:187
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:422
msgid "Template"
msgstr ""
-#: common/models.py:698
+#: common/models.py:706
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:704 part/models.py:919 templates/js/translated/bom.js:1068
+#: common/models.py:712 part/models.py:921 templates/js/translated/bom.js:1082
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:434
msgid "Assembly"
msgstr "Samenstelling"
-#: common/models.py:705
+#: common/models.py:713
msgid "Parts can be assembled from other components by default"
msgstr "Onderdelen kunnen standaard vanuit andere delen worden samengesteld"
-#: common/models.py:711 part/models.py:925
+#: common/models.py:719 part/models.py:927
#: templates/js/translated/table_filters.js:438
msgid "Component"
msgstr ""
-#: common/models.py:712
+#: common/models.py:720
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:718 part/models.py:936
+#: common/models.py:726 part/models.py:938
msgid "Purchaseable"
msgstr ""
-#: common/models.py:719
+#: common/models.py:727
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:725 part/models.py:941
+#: common/models.py:733 part/models.py:943
#: templates/js/translated/table_filters.js:446
msgid "Salable"
msgstr ""
-#: common/models.py:726
+#: common/models.py:734
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:732 part/models.py:931
+#: common/models.py:740 part/models.py:933
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
#: templates/js/translated/table_filters.js:450
msgid "Trackable"
msgstr ""
-#: common/models.py:733
+#: common/models.py:741
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:739 part/models.py:951
+#: common/models.py:747 part/models.py:953
#: part/templates/part/part_base.html:147
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr ""
-#: common/models.py:740
+#: common/models.py:748
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:746
+#: common/models.py:754
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:747
+#: common/models.py:755
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:753
+#: common/models.py:761
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:754
+#: common/models.py:762
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:765
+#: common/models.py:773
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:766
+#: common/models.py:774
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:772
+#: common/models.py:780
msgid "Show related parts"
msgstr ""
-#: common/models.py:773
+#: common/models.py:781
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:779
+#: common/models.py:787
msgid "Create initial stock"
msgstr ""
-#: common/models.py:780
+#: common/models.py:788
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:786
+#: common/models.py:794
msgid "Internal Prices"
msgstr "Interne prijzen"
-#: common/models.py:787
+#: common/models.py:795
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:793
+#: common/models.py:801
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:794
+#: common/models.py:802
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:800
+#: common/models.py:808
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:801
+#: common/models.py:809
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:808
+#: common/models.py:816
msgid "Enable Reports"
msgstr ""
-#: common/models.py:809
+#: common/models.py:817
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:815 templates/stats.html:25
+#: common/models.py:823 templates/stats.html:25
msgid "Debug Mode"
msgstr "Foutopsporingsmodus"
-#: common/models.py:816
+#: common/models.py:824
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:822
+#: common/models.py:830
msgid "Page Size"
msgstr "Paginagrootte"
-#: common/models.py:823
+#: common/models.py:831
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:833
+#: common/models.py:841
msgid "Test Reports"
msgstr "Testrapport"
-#: common/models.py:834
+#: common/models.py:842
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:840
+#: common/models.py:848
msgid "Stock Expiry"
msgstr "Verlopen voorraad"
-#: common/models.py:841
+#: common/models.py:849
msgid "Enable stock expiry functionality"
msgstr "Verlopen voorraad functionaliteit inschakelen"
-#: common/models.py:847
+#: common/models.py:855
msgid "Sell Expired Stock"
msgstr "Verkoop verlopen voorraad"
-#: common/models.py:848
+#: common/models.py:856
msgid "Allow sale of expired stock"
msgstr "Verkoop verlopen voorraad toestaan"
-#: common/models.py:854
+#: common/models.py:862
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:855
+#: common/models.py:863
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:857
+#: common/models.py:865
msgid "days"
msgstr "dagen"
-#: common/models.py:862
+#: common/models.py:870
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:863
+#: common/models.py:871
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:869
+#: common/models.py:877
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:870
+#: common/models.py:878
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:876
-msgid "Group by Part"
-msgstr ""
-
-#: common/models.py:877
-msgid "Group stock items by part reference in table views"
-msgstr ""
-
-#: common/models.py:883
+#: common/models.py:884
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:884
+#: common/models.py:885
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:889
+#: common/models.py:890
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:890
+#: common/models.py:891
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:894
+#: common/models.py:895
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:895
+#: common/models.py:896
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:900
+#: common/models.py:901
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:901
+#: common/models.py:902
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:907
+#: common/models.py:908
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:908
+#: common/models.py:909
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:913
+#: common/models.py:914
msgid "Enable registration"
msgstr ""
-#: common/models.py:914
+#: common/models.py:915
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:919
+#: common/models.py:920
msgid "Enable SSO"
msgstr ""
-#: common/models.py:920
+#: common/models.py:921
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:925
+#: common/models.py:926
msgid "Email required"
msgstr ""
-#: common/models.py:926
+#: common/models.py:927
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:931
+#: common/models.py:932
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:932
+#: common/models.py:933
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:937
+#: common/models.py:938
msgid "Mail twice"
msgstr ""
-#: common/models.py:938
+#: common/models.py:939
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:943
+#: common/models.py:944
msgid "Password twice"
msgstr ""
-#: common/models.py:944
+#: common/models.py:945
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:949
+#: common/models.py:950
msgid "Group on signup"
msgstr ""
-#: common/models.py:950
+#: common/models.py:951
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:955
+#: common/models.py:956
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:956
+#: common/models.py:957
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:961
+#: common/models.py:964
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:962
+#: common/models.py:965
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:968
+#: common/models.py:971
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:969
+#: common/models.py:972
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:975
+#: common/models.py:978
msgid "Enable app integration"
msgstr ""
-#: common/models.py:976
+#: common/models.py:979
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:982
+#: common/models.py:985
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:983
+#: common/models.py:986
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1029
+#: common/models.py:992
+msgid "Enable event integration"
+msgstr ""
+
+#: common/models.py:993
+msgid "Enable plugins to respond to internal events"
+msgstr ""
+
+#: common/models.py:1008 common/models.py:1216
+msgid "Settings key (must be unique - case insensitive"
+msgstr "Instellingssleutel (moet uniek zijn - hoofdletter ongevoelig"
+
+#: common/models.py:1039
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1030
+#: common/models.py:1040
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1035
+#: common/models.py:1045
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1036
+#: common/models.py:1046
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1041
+#: common/models.py:1051
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1042
+#: common/models.py:1052
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1047
+#: common/models.py:1057
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1048
+#: common/models.py:1058
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1054
+#: common/models.py:1064
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1055
+#: common/models.py:1065
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1070
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1061
+#: common/models.py:1071
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1066
+#: common/models.py:1076
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1067
+#: common/models.py:1077
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1072
+#: common/models.py:1082
msgid "Show low stock"
msgstr ""
-#: common/models.py:1073
+#: common/models.py:1083
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1078
+#: common/models.py:1088
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1079
+#: common/models.py:1089
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1084
+#: common/models.py:1094
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1085
+#: common/models.py:1095
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1090
+#: common/models.py:1100
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1091
+#: common/models.py:1101
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1096
+#: common/models.py:1106
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1097
+#: common/models.py:1107
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1102
+#: common/models.py:1112
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1103
+#: common/models.py:1113
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1108
+#: common/models.py:1118
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1109
+#: common/models.py:1119
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1114
+#: common/models.py:1124
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1115
+#: common/models.py:1125
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1120
+#: common/models.py:1130
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1121
+#: common/models.py:1131
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1136
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1127
+#: common/models.py:1137
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1142
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1143
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1149
msgid "Inline label display"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1150
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1156
msgid "Inline report display"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1157
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1163
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1164
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1170
msgid "Search Show Stock"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1171
msgid "Display stock levels in search preview window"
msgstr ""
-#: common/models.py:1167
+#: common/models.py:1177
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1178
msgid "Hide inactive parts in search preview window"
msgstr ""
-#: common/models.py:1174
+#: common/models.py:1184
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1175
+#: common/models.py:1185
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1181
+#: common/models.py:1191
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1182
+#: common/models.py:1192
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1188
+#: common/models.py:1198
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1199
msgid "InvenTree navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1254 company/forms.py:43
+#: common/models.py:1264 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1261 company/serializers.py:264
+#: common/models.py:1271 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:909 templates/js/translated/part.js:1860
+#: templates/js/translated/part.js:915 templates/js/translated/part.js:1867
msgid "Price"
msgstr ""
-#: common/models.py:1262
+#: common/models.py:1272
msgid "Unit price at specified quantity"
msgstr ""
+#: common/models.py:1429 common/models.py:1568
+msgid "Endpoint"
+msgstr ""
+
+#: common/models.py:1430
+msgid "Endpoint at which this webhook is received"
+msgstr ""
+
+#: common/models.py:1439
+msgid "Name for this webhook"
+msgstr ""
+
+#: common/models.py:1444 part/models.py:948 plugin/models.py:46
+#: templates/js/translated/table_filters.js:34
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:295
+#: templates/js/translated/table_filters.js:417
+msgid "Active"
+msgstr ""
+
+#: common/models.py:1445
+msgid "Is this webhook active"
+msgstr ""
+
+#: common/models.py:1459
+msgid "Token"
+msgstr ""
+
+#: common/models.py:1460
+msgid "Token for access"
+msgstr ""
+
+#: common/models.py:1467
+msgid "Secret"
+msgstr ""
+
+#: common/models.py:1468
+msgid "Shared secret for HMAC"
+msgstr ""
+
+#: common/models.py:1535
+msgid "Message ID"
+msgstr ""
+
+#: common/models.py:1536
+msgid "Unique identifier for this message"
+msgstr ""
+
+#: common/models.py:1544
+msgid "Host"
+msgstr ""
+
+#: common/models.py:1545
+msgid "Host from which this message was received"
+msgstr ""
+
+#: common/models.py:1552
+msgid "Header"
+msgstr ""
+
+#: common/models.py:1553
+msgid "Header of this message"
+msgstr ""
+
+#: common/models.py:1559
+msgid "Body"
+msgstr ""
+
+#: common/models.py:1560
+msgid "Body of this message"
+msgstr ""
+
+#: common/models.py:1569
+msgid "Endpoint on which this message was received"
+msgstr ""
+
+#: common/models.py:1574
+msgid "Worked on"
+msgstr ""
+
+#: common/models.py:1575
+msgid "Was the work on this message finished?"
+msgstr ""
+
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
#: part/templates/part/bom_upload/upload_file.html:52
-#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
-#: part/views.py:764
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:213
+#: part/views.py:773
msgid "Upload File"
msgstr ""
#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
-#: part/views.py:765
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:214
+#: part/views.py:774
msgid "Match Fields"
msgstr ""
@@ -2315,7 +2404,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:838
+#: company/models.py:139 part/models.py:840
msgid "Image"
msgstr ""
@@ -2352,8 +2441,8 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:469
-#: stock/templates/stock/item_base.html:142
+#: company/models.py:320 company/models.py:535 stock/models.py:471
+#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:328
msgid "Base Part"
msgstr ""
@@ -2380,7 +2469,7 @@ msgstr "Fabrikant selecteren"
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:818 templates/js/translated/order.js:1038
-#: templates/js/translated/part.js:245 templates/js/translated/part.js:889
+#: templates/js/translated/part.js:245 templates/js/translated/part.js:895
msgid "MPN"
msgstr "MPN"
@@ -2409,8 +2498,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1960 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:709 templates/js/translated/stock.js:1296
+#: stock/models.py:1988 templates/js/translated/company.js:647
+#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1304
msgid "Value"
msgstr ""
@@ -2418,10 +2507,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:913 part/models.py:2450
+#: company/models.py:429 part/models.py:915 part/models.py:2457
#: part/templates/part/part_base.html:288
-#: templates/InvenTree/settings/settings.html:284
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:715
+#: templates/InvenTree/settings/settings.html:287
+#: templates/js/translated/company.js:653 templates/js/translated/part.js:721
msgid "Units"
msgstr ""
@@ -2434,13 +2523,13 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr "Gekoppeld fabrikant onderdeel moet verwijzen naar hetzelfde basis onderdeel"
#: company/models.py:545 company/templates/company/company_base.html:78
-#: company/templates/company/supplier_part.html:87 order/models.py:224
+#: company/templates/company/supplier_part.html:87 order/models.py:227
#: order/templates/order/order_base.html:112
-#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
-#: part/bom.py:247 stock/templates/stock/item_base.html:397
+#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237
+#: part/bom.py:265 stock/templates/stock/item_base.html:397
#: templates/js/translated/company.js:337
#: templates/js/translated/company.js:774 templates/js/translated/order.js:823
-#: templates/js/translated/part.js:215 templates/js/translated/part.js:857
+#: templates/js/translated/part.js:215 templates/js/translated/part.js:863
#: templates/js/translated/table_filters.js:393
msgid "Supplier"
msgstr ""
@@ -2450,8 +2539,8 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:1025
-#: templates/js/translated/part.js:226 templates/js/translated/part.js:875
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1025
+#: templates/js/translated/part.js:226 templates/js/translated/part.js:881
msgid "SKU"
msgstr ""
@@ -2472,22 +2561,22 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:119
-#: part/models.py:2641 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2648 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:580 part/models.py:1779
+#: company/models.py:580 part/models.py:1781
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1779
+#: company/models.py:580 part/models.py:1781
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:493 stock/templates/stock/item_base.html:338
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1791
+#: stock/models.py:495 stock/templates/stock/item_base.html:338
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1799
msgid "Packaging"
msgstr ""
@@ -2495,7 +2584,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1781
+#: company/models.py:584 part/models.py:1783
msgid "multiple"
msgstr ""
@@ -2554,12 +2643,12 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:83 order/models.py:547
-#: order/templates/order/sales_order_base.html:115 stock/models.py:512
-#: stock/models.py:513 stock/serializers.py:625
+#: company/templates/company/company_base.html:83 order/models.py:552
+#: order/templates/order/sales_order_base.html:115 stock/models.py:514
+#: stock/models.py:515 stock/serializers.py:626
#: stock/templates/stock/item_base.html:290
#: templates/js/translated/company.js:329 templates/js/translated/order.js:1240
-#: templates/js/translated/stock.js:2452
+#: templates/js/translated/stock.js:2610
#: templates/js/translated/table_filters.js:397
msgid "Customer"
msgstr ""
@@ -2590,7 +2679,7 @@ msgstr ""
#: company/templates/company/detail.html:20
#: company/templates/company/manufacturer_part.html:118
-#: part/templates/part/detail.html:336
+#: part/templates/part/detail.html:353
msgid "New Supplier Part"
msgstr ""
@@ -2598,8 +2687,8 @@ msgstr ""
#: company/templates/company/detail.html:79
#: company/templates/company/manufacturer_part.html:127
#: company/templates/company/manufacturer_part.html:156
-#: part/templates/part/category.html:171 part/templates/part/detail.html:345
-#: part/templates/part/detail.html:374
+#: part/templates/part/category.html:171 part/templates/part/detail.html:362
+#: part/templates/part/detail.html:391
msgid "Options"
msgstr ""
@@ -2627,7 +2716,7 @@ msgstr "Fabrikant onderdelen"
msgid "Create new manufacturer part"
msgstr "Maak nieuw fabrikant onderdeel"
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:364
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:381
msgid "New Manufacturer Part"
msgstr "Nieuw fabrikant onderdeel"
@@ -2641,7 +2730,7 @@ msgstr ""
#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:68 part/templates/part/part_sidebar.html:33
+#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
@@ -2663,7 +2752,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:91 part/templates/part/part_sidebar.html:37
+#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:41
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
@@ -2691,13 +2780,13 @@ msgstr ""
#: company/templates/company/detail.html:384
#: company/templates/company/manufacturer_part.html:215
-#: part/templates/part/detail.html:418
+#: part/templates/part/detail.html:435
msgid "Delete Supplier Parts?"
msgstr ""
#: company/templates/company/detail.html:385
#: company/templates/company/manufacturer_part.html:216
-#: part/templates/part/detail.html:419
+#: part/templates/part/detail.html:436
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2714,7 +2803,7 @@ msgstr "Fabrikanten"
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:34
#: company/templates/company/supplier_part.html:159
-#: part/templates/part/detail.html:71 part/templates/part/part_base.html:76
+#: part/templates/part/detail.html:88 part/templates/part/part_base.html:76
msgid "Order part"
msgstr ""
@@ -2735,34 +2824,34 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:114
#: company/templates/company/supplier_part.html:15 company/views.py:49
-#: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163
+#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:163
#: templates/InvenTree/search.html:188 templates/navbar.html:45
msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
-#: part/templates/part/detail.html:347
+#: part/templates/part/detail.html:364
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
#: company/templates/company/manufacturer_part.html:158
#: company/templates/company/manufacturer_part.html:254
-#: part/templates/part/detail.html:347 part/templates/part/detail.html:376
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:393
#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31
-#: users/models.py:210
+#: users/models.py:212
msgid "Delete"
msgstr ""
#: company/templates/company/manufacturer_part.html:143
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:17
-#: part/templates/part/detail.html:170 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:187 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:147
-#: part/templates/part/detail.html:175
+#: part/templates/part/detail.html:192
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
@@ -2773,7 +2862,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:191
-#: part/templates/part/detail.html:862
+#: part/templates/part/detail.html:892
msgid "Add Parameter"
msgstr ""
@@ -2802,9 +2891,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:477
+#: company/templates/company/supplier_part.html:24 stock/models.py:479
#: stock/templates/stock/item_base.html:402
-#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1748
+#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1756
msgid "Supplier Part"
msgstr ""
@@ -2830,7 +2919,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:167
-#: templates/js/translated/stock.js:360
+#: templates/js/translated/stock.js:368
msgid "New Stock Item"
msgstr ""
@@ -2840,7 +2929,7 @@ msgid "Supplier Part Orders"
msgstr ""
#: company/templates/company/supplier_part.html:160
-#: part/templates/part/detail.html:72
+#: part/templates/part/detail.html:89
msgid "Order Part"
msgstr ""
@@ -2851,7 +2940,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1619
+#: part/templates/part/prices.html:271 part/views.py:1628
msgid "Add Price Break"
msgstr ""
@@ -2859,11 +2948,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1681
+#: company/templates/company/supplier_part.html:224 part/views.py:1690
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1667
+#: company/templates/company/supplier_part.html:238 part/views.py:1676
msgid "Edit Price Break"
msgstr ""
@@ -2881,10 +2970,10 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:150
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/bom.js:328 templates/js/translated/part.js:489
-#: templates/js/translated/part.js:624 templates/js/translated/part.js:1118
-#: templates/js/translated/part.js:1279 templates/js/translated/stock.js:927
-#: templates/js/translated/stock.js:1580 templates/navbar.html:28
+#: templates/js/translated/bom.js:340 templates/js/translated/part.js:495
+#: templates/js/translated/part.js:630 templates/js/translated/part.js:1125
+#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:935
+#: templates/js/translated/stock.js:1588 templates/navbar.html:28
msgid "Stock"
msgstr ""
@@ -2907,8 +2996,8 @@ msgstr ""
#: stock/templates/stock/location.html:151
#: stock/templates/stock/location.html:163
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2351
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2509
+#: templates/stats.html:105 templates/stats.html:114 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2937,20 +3026,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:584
+#: company/views.py:129 part/views.py:593
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:616
+#: company/views.py:158 part/views.py:625
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:623
+#: company/views.py:165 part/views.py:632
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:632
+#: company/views.py:174 part/views.py:641
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3036,282 +3125,282 @@ msgstr ""
msgid "Cancel order"
msgstr ""
-#: order/models.py:122
+#: order/models.py:125
msgid "Order description"
msgstr ""
-#: order/models.py:124
+#: order/models.py:127
msgid "Link to external page"
msgstr ""
-#: order/models.py:132
+#: order/models.py:135
msgid "Created By"
msgstr ""
-#: order/models.py:139
+#: order/models.py:142
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:144
+#: order/models.py:147
msgid "Order notes"
msgstr ""
-#: order/models.py:211 order/models.py:537
+#: order/models.py:214 order/models.py:542
msgid "Order reference"
msgstr ""
-#: order/models.py:216 order/models.py:552
+#: order/models.py:219 order/models.py:557
msgid "Purchase order status"
msgstr ""
-#: order/models.py:225
+#: order/models.py:228
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:228 order/templates/order/order_base.html:118
+#: order/models.py:231 order/templates/order/order_base.html:118
#: templates/js/translated/order.js:832
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:228
+#: order/models.py:231
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:235
+#: order/models.py:238
msgid "received by"
msgstr ""
-#: order/models.py:240
+#: order/models.py:243
msgid "Issue Date"
msgstr ""
-#: order/models.py:241
+#: order/models.py:244
msgid "Date order was issued"
msgstr ""
-#: order/models.py:246
+#: order/models.py:249
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:247
+#: order/models.py:250
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:253
+#: order/models.py:256
msgid "Date order was completed"
msgstr ""
-#: order/models.py:282
+#: order/models.py:285
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:411
-msgid "Quantity must be an integer"
-msgstr ""
-
-#: order/models.py:415
+#: order/models.py:420
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:548
+#: order/models.py:553
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:554
+#: order/models.py:559
msgid "Customer Reference "
msgstr ""
-#: order/models.py:554
+#: order/models.py:559
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:559
+#: order/models.py:564
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:562 order/models.py:1028
+#: order/models.py:567 order/models.py:1048
#: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429
msgid "Shipment Date"
msgstr ""
-#: order/models.py:569
+#: order/models.py:574
msgid "shipped by"
msgstr ""
-#: order/models.py:635
+#: order/models.py:640
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:639
+#: order/models.py:644
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:642
+#: order/models.py:647
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:645
+#: order/models.py:650
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:797
+#: order/models.py:806
msgid "Item quantity"
msgstr ""
-#: order/models.py:803
+#: order/models.py:812
msgid "Line item reference"
msgstr ""
-#: order/models.py:805
+#: order/models.py:814
msgid "Line item notes"
msgstr ""
-#: order/models.py:835 order/models.py:926 order/models.py:1022
-#: templates/js/translated/order.js:1820
+#: order/models.py:842
+msgid "Supplier part must match supplier"
+msgstr ""
+
+#: order/models.py:855 order/models.py:946 order/models.py:1042
+#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2271
msgid "Order"
msgstr ""
-#: order/models.py:836 order/templates/order/order_base.html:9
+#: order/models.py:856 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:352
-#: templates/js/translated/order.js:801 templates/js/translated/part.js:832
-#: templates/js/translated/stock.js:1725 templates/js/translated/stock.js:2433
+#: templates/js/translated/order.js:801 templates/js/translated/part.js:838
+#: templates/js/translated/stock.js:1733 templates/js/translated/stock.js:2591
msgid "Purchase Order"
msgstr ""
-#: order/models.py:857
+#: order/models.py:877
msgid "Supplier part"
msgstr ""
-#: order/models.py:864 order/templates/order/order_base.html:163
+#: order/models.py:884 order/templates/order/order_base.html:163
#: templates/js/translated/order.js:589 templates/js/translated/order.js:1118
-#: templates/js/translated/part.js:904 templates/js/translated/part.js:930
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:937
#: templates/js/translated/table_filters.js:317
msgid "Received"
msgstr ""
-#: order/models.py:865
+#: order/models.py:885
msgid "Number of items received"
msgstr ""
-#: order/models.py:872 part/templates/part/prices.html:176 stock/models.py:606
+#: order/models.py:892 part/templates/part/prices.html:176 stock/models.py:608
#: stock/serializers.py:170 stock/templates/stock/item_base.html:359
-#: templates/js/translated/stock.js:1779
+#: templates/js/translated/stock.js:1787
msgid "Purchase Price"
msgstr ""
-#: order/models.py:873
+#: order/models.py:893
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:881
+#: order/models.py:901
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:936 part/templates/part/part_pricing.html:112
+#: order/models.py:956 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:937
+#: order/models.py:957
msgid "Unit sale price"
msgstr ""
-#: order/models.py:942
+#: order/models.py:962
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1029
+#: order/models.py:1049
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1036
+#: order/models.py:1056
msgid "Checked By"
msgstr ""
-#: order/models.py:1037
+#: order/models.py:1057
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1045
+#: order/models.py:1065
msgid "Shipment number"
msgstr ""
-#: order/models.py:1052
+#: order/models.py:1072
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1059
+#: order/models.py:1079
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1060
+#: order/models.py:1080
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1070
+#: order/models.py:1090
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1073
+#: order/models.py:1093
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1149 order/models.py:1151
+#: order/models.py:1171 order/models.py:1173
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1155
+#: order/models.py:1177
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1157
+#: order/models.py:1179
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1160
+#: order/models.py:1182
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1164
+#: order/models.py:1186
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:1170 order/serializers.py:734
+#: order/models.py:1192 order/serializers.py:740
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1173
+#: order/models.py:1195
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1174
+#: order/models.py:1196
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1182
+#: order/models.py:1204
msgid "Line"
msgstr ""
-#: order/models.py:1190 order/serializers.py:825 order/serializers.py:953
-#: templates/js/translated/model_renderers.js:251
+#: order/models.py:1212 order/serializers.py:831 order/serializers.py:959
+#: templates/js/translated/model_renderers.js:285
msgid "Shipment"
msgstr ""
-#: order/models.py:1191
+#: order/models.py:1213
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1203
+#: order/models.py:1225
msgid "Item"
msgstr ""
-#: order/models.py:1204
+#: order/models.py:1226
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1207
+#: order/models.py:1229
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3319,7 +3408,7 @@ msgstr ""
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:211 order/serializers.py:790
+#: order/serializers.py:211 order/serializers.py:796
msgid "Line Item"
msgstr ""
@@ -3355,39 +3444,39 @@ msgstr ""
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:581
+#: order/serializers.py:587
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:649
+#: order/serializers.py:655
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:699 order/serializers.py:802
+#: order/serializers.py:705 order/serializers.py:808
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:721
+#: order/serializers.py:727
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:815
+#: order/serializers.py:821
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:839 order/serializers.py:964
+#: order/serializers.py:845 order/serializers.py:970
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:842 order/serializers.py:967
+#: order/serializers.py:848 order/serializers.py:973
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:894
+#: order/serializers.py:900
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:904
+#: order/serializers.py:910
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3441,6 +3530,7 @@ msgstr ""
#: order/templates/order/order_base.html:94
#: order/templates/order/sales_order_base.html:89
+#: templates/js/translated/stock.js:2327
msgid "Order Status"
msgstr ""
@@ -3538,7 +3628,7 @@ msgstr ""
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/build.js:300 templates/js/translated/build.js:1311
#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488
-#: templates/js/translated/stock.js:593 templates/js/translated/stock.js:761
+#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769
msgid "Remove row"
msgstr ""
@@ -3729,7 +3819,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:48
-#: templates/js/translated/bom.js:720 templates/js/translated/build.js:1243
+#: templates/js/translated/bom.js:732 templates/js/translated/build.js:1243
msgid "Actions"
msgstr ""
@@ -3832,447 +3922,448 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:125 part/models.py:81 part/models.py:847
+#: part/bom.py:125 part/models.py:83 part/models.py:849
#: part/templates/part/category.html:108 part/templates/part/part_base.html:338
msgid "Default Location"
msgstr "Standaard locatie"
-#: part/bom.py:126 part/templates/part/part_base.html:185
+#: part/bom.py:126 templates/email/low_stock_notification.html:17
+msgid "Total Stock"
+msgstr ""
+
+#: part/bom.py:127 part/templates/part/part_base.html:185
msgid "Available Stock"
msgstr ""
-#: part/forms.py:85
+#: part/bom.py:128 part/templates/part/part_base.html:203
+#: templates/js/translated/part.js:1301
+msgid "On Order"
+msgstr ""
+
+#: part/forms.py:84
msgid "Select part category"
msgstr ""
-#: part/forms.py:122
+#: part/forms.py:121
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:126
+#: part/forms.py:125
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:146
+#: part/forms.py:145
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:82
+#: part/models.py:84
msgid "Default location for parts in this category"
msgstr "Standaard locatie voor onderdelen in deze categorie"
-#: part/models.py:85
+#: part/models.py:87
msgid "Default keywords"
msgstr ""
-#: part/models.py:85
+#: part/models.py:87
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:95 part/models.py:2526 part/templates/part/category.html:15
+#: part/models.py:97 part/models.py:2533 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:96 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/stats.html:84
+#: part/models.py:98 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/stats.html:96
#: users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:358 part/templates/part/cat_link.html:3
+#: part/models.py:360 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:17 part/templates/part/category.html:133
#: part/templates/part/category.html:153
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:37
-#: templates/js/translated/part.js:1656 templates/navbar.html:21
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+#: templates/js/translated/part.js:1663 templates/navbar.html:21
+#: templates/stats.html:92 templates/stats.html:101 users/models.py:41
msgid "Parts"
msgstr ""
-#: part/models.py:450
+#: part/models.py:452
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:500 part/models.py:512
+#: part/models.py:502 part/models.py:514
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:642
+#: part/models.py:644
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:646
+#: part/models.py:648
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:651
+#: part/models.py:653
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:746
+#: part/models.py:748
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:771
+#: part/models.py:773
msgid "Part name"
msgstr ""
-#: part/models.py:778
+#: part/models.py:780
msgid "Is Template"
msgstr ""
-#: part/models.py:779
+#: part/models.py:781
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:789
+#: part/models.py:791
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:790
+#: part/models.py:792
msgid "Variant Of"
msgstr ""
-#: part/models.py:796
+#: part/models.py:798
msgid "Part description"
msgstr ""
-#: part/models.py:801 part/templates/part/category.html:86
+#: part/models.py:803 part/templates/part/category.html:86
#: part/templates/part/part_base.html:302
msgid "Keywords"
msgstr ""
-#: part/models.py:802
+#: part/models.py:804
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:809 part/models.py:2276 part/models.py:2525
+#: part/models.py:811 part/models.py:2283 part/models.py:2532
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:183
-#: templates/js/translated/part.js:1261
+#: templates/InvenTree/settings/settings.html:186
+#: templates/js/translated/part.js:1268
msgid "Category"
msgstr ""
-#: part/models.py:810
+#: part/models.py:812
msgid "Part category"
msgstr ""
-#: part/models.py:815 part/templates/part/part_base.html:274
-#: templates/js/translated/part.js:612 templates/js/translated/part.js:1214
-#: templates/js/translated/stock.js:1552
+#: part/models.py:817 part/templates/part/part_base.html:274
+#: templates/js/translated/part.js:618 templates/js/translated/part.js:1221
+#: templates/js/translated/stock.js:1560
msgid "IPN"
msgstr ""
-#: part/models.py:816
+#: part/models.py:818
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:822
+#: part/models.py:824
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:823 part/templates/part/part_base.html:281
-#: report/models.py:200 templates/js/translated/part.js:616
+#: part/models.py:825 part/templates/part/part_base.html:281
+#: report/models.py:200 templates/js/translated/part.js:622
msgid "Revision"
msgstr ""
-#: part/models.py:845
+#: part/models.py:847
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:892 part/templates/part/part_base.html:347
+#: part/models.py:894 part/templates/part/part_base.html:347
msgid "Default Supplier"
msgstr ""
-#: part/models.py:893
+#: part/models.py:895
msgid "Default supplier part"
msgstr ""
-#: part/models.py:900
+#: part/models.py:902
msgid "Default Expiry"
msgstr ""
-#: part/models.py:901
+#: part/models.py:903
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:906 part/templates/part/part_base.html:196
+#: part/models.py:908 part/templates/part/part_base.html:196
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:907
+#: part/models.py:909
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:914
+#: part/models.py:916
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:920
+#: part/models.py:922
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:926
+#: part/models.py:928
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:932
+#: part/models.py:934
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:937
+#: part/models.py:939
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:942
+#: part/models.py:944
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:946 plugin/models.py:46
-#: templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:96
-#: templates/js/translated/table_filters.js:295
-#: templates/js/translated/table_filters.js:417
-msgid "Active"
-msgstr ""
-
-#: part/models.py:947
+#: part/models.py:949
msgid "Is this part active?"
msgstr ""
-#: part/models.py:952
+#: part/models.py:954
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:957
+#: part/models.py:959
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:960
+#: part/models.py:962
msgid "BOM checksum"
msgstr ""
-#: part/models.py:960
+#: part/models.py:962
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:963
+#: part/models.py:965
msgid "BOM checked by"
msgstr ""
-#: part/models.py:965
+#: part/models.py:967
msgid "BOM checked date"
msgstr ""
-#: part/models.py:969
+#: part/models.py:971
msgid "Creation User"
msgstr ""
-#: part/models.py:1781
+#: part/models.py:1783
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2326
+#: part/models.py:2333
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2343
+#: part/models.py:2350
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2363 templates/js/translated/part.js:1707
-#: templates/js/translated/stock.js:1276
+#: part/models.py:2370 templates/js/translated/part.js:1714
+#: templates/js/translated/stock.js:1284
msgid "Test Name"
msgstr ""
-#: part/models.py:2364
+#: part/models.py:2371
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2376
msgid "Test Description"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2377
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2375 templates/js/translated/part.js:1716
+#: part/models.py:2382 templates/js/translated/part.js:1723
#: templates/js/translated/table_filters.js:281
msgid "Required"
msgstr ""
-#: part/models.py:2376
+#: part/models.py:2383
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2381 templates/js/translated/part.js:1724
+#: part/models.py:2388 templates/js/translated/part.js:1731
msgid "Requires Value"
msgstr ""
-#: part/models.py:2382
+#: part/models.py:2389
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2387 templates/js/translated/part.js:1731
+#: part/models.py:2394 templates/js/translated/part.js:1738
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2388
+#: part/models.py:2395
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2399
+#: part/models.py:2406
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2435
+#: part/models.py:2442
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2443
+#: part/models.py:2450
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2450
+#: part/models.py:2457
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2480
+#: part/models.py:2487
msgid "Parent Part"
msgstr ""
-#: part/models.py:2482 part/models.py:2531 part/models.py:2532
-#: templates/InvenTree/settings/settings.html:178
+#: part/models.py:2489 part/models.py:2538 part/models.py:2539
+#: templates/InvenTree/settings/settings.html:181
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2484
+#: part/models.py:2491
msgid "Data"
msgstr ""
-#: part/models.py:2484
+#: part/models.py:2491
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2536 templates/InvenTree/settings/settings.html:187
+#: part/models.py:2543 templates/InvenTree/settings/settings.html:190
msgid "Default Value"
msgstr ""
-#: part/models.py:2537
+#: part/models.py:2544
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2614
+#: part/models.py:2621
msgid "Select parent part"
msgstr ""
-#: part/models.py:2622
+#: part/models.py:2629
msgid "Sub part"
msgstr ""
-#: part/models.py:2623
+#: part/models.py:2630
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2629
+#: part/models.py:2636
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2631 templates/js/translated/bom.js:566
-#: templates/js/translated/bom.js:640
+#: part/models.py:2638 templates/js/translated/bom.js:578
+#: templates/js/translated/bom.js:652
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2638
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2634
+#: part/models.py:2641
msgid "Overage"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2642
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2638
+#: part/models.py:2645
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2641
+#: part/models.py:2648
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2643
+#: part/models.py:2650
msgid "Checksum"
msgstr ""
-#: part/models.py:2643
+#: part/models.py:2650
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2647 templates/js/translated/bom.js:657
+#: part/models.py:2654 templates/js/translated/bom.js:669
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2648
+#: part/models.py:2655
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2653 templates/js/translated/bom.js:649
+#: part/models.py:2660 templates/js/translated/bom.js:661
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2654
+#: part/models.py:2661
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2739 stock/models.py:355
+#: part/models.py:2746 stock/models.py:357
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2748 part/models.py:2750
+#: part/models.py:2755 part/models.py:2757
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2879
+#: part/models.py:2886
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2908
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2920
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2928
msgid "Substitute part"
msgstr ""
-#: part/models.py:2932
+#: part/models.py:2939
msgid "Part 1"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2943
msgid "Part 2"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2943
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2968
+#: part/models.py:2975
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4327,7 +4418,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:253
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:270
msgid "BOM actions"
msgstr ""
@@ -4499,7 +4590,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:348
msgid "Duplicate Part"
msgstr ""
@@ -4533,145 +4624,149 @@ msgid "Showing stock for all variants of %(full_name)s"
msgstr ""
#: part/templates/part/detail.html:43
+msgid "Part Stock Allocations"
+msgstr ""
+
+#: part/templates/part/detail.html:60
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:48
+#: part/templates/part/detail.html:65
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:105
+#: part/templates/part/detail.html:122
msgid "Sales Order Allocations"
msgstr "Toewijzingen verkoopopdracht"
-#: part/templates/part/detail.html:142
+#: part/templates/part/detail.html:159
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:146
+#: part/templates/part/detail.html:163
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:147
+#: part/templates/part/detail.html:164
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:174
+#: part/templates/part/detail.html:191
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:45
+#: part/templates/part/detail.html:228 part/templates/part/part_sidebar.html:49
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:215 part/templates/part/detail.html:216
+#: part/templates/part/detail.html:232 part/templates/part/detail.html:233
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:236 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:253 part/templates/part/part_sidebar.html:17
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:241
+#: part/templates/part/detail.html:258
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:245 templates/js/translated/bom.js:70
+#: part/templates/part/detail.html:262 templates/js/translated/bom.js:70
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:247
+#: part/templates/part/detail.html:264
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:257
+#: part/templates/part/detail.html:274
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:259 templates/js/translated/part.js:272
+#: part/templates/part/detail.html:276 templates/js/translated/part.js:272
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:278
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:266
+#: part/templates/part/detail.html:283
msgid "New BOM Item"
msgstr "Nieuw stuklijstitem"
-#: part/templates/part/detail.html:267
+#: part/templates/part/detail.html:284
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:280
+#: part/templates/part/detail.html:297
msgid "Assemblies"
msgstr "Samenstellingen"
-#: part/templates/part/detail.html:297
+#: part/templates/part/detail.html:314
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:322
+#: part/templates/part/detail.html:339
msgid "Build Order Allocations"
msgstr "Productie-opdracht toewijzingen"
-#: part/templates/part/detail.html:332
+#: part/templates/part/detail.html:349
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:360
+#: part/templates/part/detail.html:377
msgid "Part Manufacturers"
msgstr "Fabrikanten"
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:393
msgid "Delete manufacturer parts"
msgstr "Fabrikant onderdeel verwijderen"
-#: part/templates/part/detail.html:558
+#: part/templates/part/detail.html:575
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:559
+#: part/templates/part/detail.html:576
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:608
+#: part/templates/part/detail.html:625
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:652
+#: part/templates/part/detail.html:682
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:660
+#: part/templates/part/detail.html:690
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:755
+#: part/templates/part/detail.html:785
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:812
+#: part/templates/part/detail.html:842
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:925
+#: part/templates/part/detail.html:955
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:937
+#: part/templates/part/detail.html:967
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:949
+#: part/templates/part/detail.html:979
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1038
+#: part/templates/part/detail.html:1068
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4786,7 +4881,7 @@ msgstr ""
#: templates/js/translated/company.js:508
#: templates/js/translated/company.js:765
#: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:527 templates/js/translated/part.js:604
+#: templates/js/translated/part.js:533 templates/js/translated/part.js:610
msgid "Inactive"
msgstr ""
@@ -4805,10 +4900,6 @@ msgstr ""
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1294
-msgid "On Order"
-msgstr ""
-
#: part/templates/part/part_base.html:210 templates/InvenTree/index.html:178
msgid "Required for Build Orders"
msgstr ""
@@ -4821,12 +4912,12 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:678
+#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:690
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1125
-#: templates/js/translated/part.js:1298
+#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1132
+#: templates/js/translated/part.js:1305
msgid "Building"
msgstr ""
@@ -4878,7 +4969,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:632
+#: templates/js/translated/bom.js:644
msgid "No supplier pricing available"
msgstr ""
@@ -4920,7 +5011,12 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/templates/part/part_sidebar.html:41
+#: part/templates/part/part_sidebar.html:31
+#: stock/templates/stock/stock_sidebar.html:8
+msgid "Allocations"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:45
msgid "Test Templates"
msgstr ""
@@ -4993,7 +5089,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:626
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:638
msgid "Supplier Cost"
msgstr ""
@@ -5015,7 +5111,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1690
+#: part/templates/part/prices.html:215 part/views.py:1699
msgid "Add Internal Price Break"
msgstr ""
@@ -5035,9 +5131,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:588
-#: templates/js/translated/part.js:491 templates/js/translated/part.js:1115
-#: templates/js/translated/part.js:1302
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:600
+#: templates/js/translated/part.js:497 templates/js/translated/part.js:1122
+#: templates/js/translated/part.js:1309
msgid "No Stock"
msgstr ""
@@ -5054,116 +5150,116 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:116
+#: part/templatetags/inventree_extras.py:125
msgid "Unknown database"
msgstr ""
-#: part/views.py:92
+#: part/views.py:93
msgid "Set Part Category"
msgstr ""
-#: part/views.py:142
+#: part/views.py:143
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:214
+#: part/views.py:215
msgid "Match References"
msgstr ""
-#: part/views.py:502
+#: part/views.py:511
msgid "None"
msgstr ""
-#: part/views.py:561
+#: part/views.py:570
msgid "Part QR Code"
msgstr ""
-#: part/views.py:663
+#: part/views.py:672
msgid "Select Part Image"
msgstr ""
-#: part/views.py:689
+#: part/views.py:698
msgid "Updated part image"
msgstr ""
-#: part/views.py:692
+#: part/views.py:701
msgid "Part image not found"
msgstr ""
-#: part/views.py:766
+#: part/views.py:775
msgid "Match Parts"
msgstr ""
-#: part/views.py:1101
+#: part/views.py:1110
msgid "Export Bill of Materials"
msgstr ""
-#: part/views.py:1150
+#: part/views.py:1159
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1157
+#: part/views.py:1166
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1166
+#: part/views.py:1175
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1315
+#: part/views.py:1324
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1325
+#: part/views.py:1334
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1332
+#: part/views.py:1341
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1391 templates/js/translated/part.js:315
+#: part/views.py:1400 templates/js/translated/part.js:315
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1429
+#: part/views.py:1438
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1435
+#: part/views.py:1444
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1444
+#: part/views.py:1453
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1545
+#: part/views.py:1554
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1601
+#: part/views.py:1610
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1623
+#: part/views.py:1632
msgid "Added new price break"
msgstr ""
-#: part/views.py:1699
+#: part/views.py:1708
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1707
+#: part/views.py:1716
msgid "Delete Internal Price Break"
msgstr ""
-#: plugin/integration.py:124
+#: plugin/integration.py:138
msgid "No author found"
msgstr ""
-#: plugin/integration.py:136
+#: plugin/integration.py:152
msgid "No date found"
msgstr ""
@@ -5191,7 +5287,7 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:195
+#: plugin/models.py:199
msgid "Plugin"
msgstr ""
@@ -5357,12 +5453,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:517 stock/templates/stock/item_base.html:156
+#: stock/models.py:519 stock/templates/stock/item_base.html:156
#: templates/js/translated/build.js:293 templates/js/translated/build.js:697
#: templates/js/translated/build.js:1073
#: templates/js/translated/model_renderers.js:95
#: templates/js/translated/order.js:99 templates/js/translated/order.js:1945
-#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:415
+#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:423
msgid "Serial Number"
msgstr "Serienummer"
@@ -5371,19 +5467,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:1948
+#: stock/models.py:1976
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:1954
+#: stock/models.py:1982
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:49
+#: templates/InvenTree/settings/plugin.html:50
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2367
+#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2525
msgid "Date"
msgstr ""
@@ -5396,23 +5492,27 @@ msgid "Fail"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:123
-#: stock/templates/stock/stock_sidebar.html:12
+#: stock/templates/stock/stock_sidebar.html:16
msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:578 templates/js/translated/stock.js:748
-#: templates/js/translated/stock.js:2627
+#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756
+#: templates/js/translated/stock.js:2785
msgid "Serial"
msgstr ""
-#: stock/api.py:478
+#: stock/api.py:476
msgid "Quantity is required"
msgstr ""
-#: stock/forms.py:77 stock/forms.py:251 stock/models.py:574
+#: stock/api.py:483
+msgid "Valid part must be supplied"
+msgstr ""
+
+#: stock/forms.py:77 stock/forms.py:251 stock/models.py:576
#: stock/templates/stock/item_base.html:193
-#: templates/js/translated/stock.js:1701
+#: templates/js/translated/stock.js:1709
msgid "Expiry Date"
msgstr ""
@@ -5460,228 +5560,228 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:60 stock/models.py:611
+#: stock/models.py:62 stock/models.py:613
#: stock/templates/stock/item_base.html:416
msgid "Owner"
msgstr ""
-#: stock/models.py:61 stock/models.py:612
+#: stock/models.py:63 stock/models.py:614
msgid "Select Owner"
msgstr ""
-#: stock/models.py:336
+#: stock/models.py:338
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:372
+#: stock/models.py:374
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:382 stock/models.py:391
+#: stock/models.py:384 stock/models.py:393
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:383
+#: stock/models.py:385
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:405
+#: stock/models.py:407
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:413
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:418
+#: stock/models.py:420
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:461
+#: stock/models.py:463
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:470
+#: stock/models.py:472
msgid "Base part"
msgstr ""
-#: stock/models.py:478
+#: stock/models.py:480
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:484 stock/templates/stock/location.html:16
+#: stock/models.py:486 stock/templates/stock/location.html:16
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr "Voorraadlocatie"
-#: stock/models.py:487
+#: stock/models.py:489
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:494
+#: stock/models.py:496
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:500 stock/templates/stock/item_base.html:298
+#: stock/models.py:502 stock/templates/stock/item_base.html:298
msgid "Installed In"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:505
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:521
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:535
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:537
+#: stock/models.py:539
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:546
+#: stock/models.py:548
msgid "Source Build"
msgstr ""
-#: stock/models.py:548
+#: stock/models.py:550
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:559
+#: stock/models.py:561
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:562
+#: stock/models.py:564
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:568
+#: stock/models.py:570
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:575
+#: stock/models.py:577
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:588
+#: stock/models.py:590
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:588
+#: stock/models.py:590
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:598 stock/templates/stock/item.html:111
+#: stock/models.py:600 stock/templates/stock/item.html:128
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:607
+#: stock/models.py:609
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1068
+#: stock/models.py:1096
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1074
+#: stock/models.py:1102
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1080
+#: stock/models.py:1108
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1083
+#: stock/models.py:1111
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1086
+#: stock/models.py:1114
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1093
+#: stock/models.py:1121
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1164
+#: stock/models.py:1192
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1167
+#: stock/models.py:1195
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1170
+#: stock/models.py:1198
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1173
+#: stock/models.py:1201
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1176
+#: stock/models.py:1204
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1179
+#: stock/models.py:1207
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1186 stock/serializers.py:774
+#: stock/models.py:1214 stock/serializers.py:775
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1190
+#: stock/models.py:1218
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1194
+#: stock/models.py:1222
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1198
+#: stock/models.py:1226
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1369
+#: stock/models.py:1397
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1868
+#: stock/models.py:1896
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1925
+#: stock/models.py:1953
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1931
+#: stock/models.py:1959
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1949
+#: stock/models.py:1977
msgid "Test name"
msgstr ""
-#: stock/models.py:1955 templates/js/translated/table_filters.js:271
+#: stock/models.py:1983 templates/js/translated/table_filters.js:271
msgid "Test result"
msgstr ""
-#: stock/models.py:1961
+#: stock/models.py:1989
msgid "Test output value"
msgstr ""
-#: stock/models.py:1968
+#: stock/models.py:1996
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1974
+#: stock/models.py:2002
msgid "Test notes"
msgstr ""
@@ -5706,7 +5806,7 @@ msgstr ""
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:326 stock/serializers.py:731 stock/serializers.py:972
+#: stock/serializers.py:326 stock/serializers.py:732 stock/serializers.py:973
msgid "Destination stock location"
msgstr ""
@@ -5718,63 +5818,63 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:588
+#: stock/serializers.py:589
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:592
+#: stock/serializers.py:593
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:597
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:626
+#: stock/serializers.py:627
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:632
+#: stock/serializers.py:633
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:640
+#: stock/serializers.py:641
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:650 stock/serializers.py:880
+#: stock/serializers.py:651 stock/serializers.py:881
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:738
+#: stock/serializers.py:739
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:743
+#: stock/serializers.py:744
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:744
+#: stock/serializers.py:745
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:749
+#: stock/serializers.py:750
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:750
+#: stock/serializers.py:751
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:760
+#: stock/serializers.py:761
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:842
+#: stock/serializers.py:843
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:870
+#: stock/serializers.py:871
msgid "Stock transaction notes"
msgstr ""
@@ -5787,47 +5887,51 @@ msgid "New Entry"
msgstr ""
#: stock/templates/stock/item.html:48
-msgid "Child Stock Items"
-msgstr ""
-
-#: stock/templates/stock/item.html:55
-msgid "This stock item does not have any child items"
+msgid "Stock Item Allocations"
msgstr ""
#: stock/templates/stock/item.html:64
-#: stock/templates/stock/stock_sidebar.html:8
-msgid "Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:57
-msgid "Test Report"
+msgid "Child Stock Items"
msgstr ""
#: stock/templates/stock/item.html:72
+msgid "This stock item does not have any child items"
+msgstr ""
+
+#: stock/templates/stock/item.html:81
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:57
+msgid "Test Report"
+msgstr ""
+
+#: stock/templates/stock/item.html:89
msgid "Delete Test Data"
msgstr ""
-#: stock/templates/stock/item.html:76
+#: stock/templates/stock/item.html:93
msgid "Add Test Data"
msgstr ""
-#: stock/templates/stock/item.html:133
+#: stock/templates/stock/item.html:150
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:137 stock/views.py:482
+#: stock/templates/stock/item.html:154 stock/views.py:482
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304
+#: stock/templates/stock/item.html:309 stock/templates/stock/item.html:334
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:324
+#: stock/templates/stock/item.html:354
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:338
+#: stock/templates/stock/item.html:368
msgid "Delete Test Result"
msgstr ""
@@ -5952,7 +6056,7 @@ msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:206
-#: templates/js/translated/stock.js:1714
+#: templates/js/translated/stock.js:1722
msgid "Last Updated"
msgstr ""
@@ -6111,7 +6215,7 @@ msgid "Sublocations"
msgstr "Sublocaties"
#: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164
-#: templates/stats.html:97 users/models.py:42
+#: templates/stats.html:109 users/models.py:42
msgid "Stock Locations"
msgstr "Voorraadlocaties"
@@ -6135,7 +6239,7 @@ msgstr ""
msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/stock_sidebar.html:16
+#: stock/templates/stock/stock_sidebar.html:20
msgid "Child Items"
msgstr ""
@@ -6164,7 +6268,7 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:162
+#: stock/views.py:162 templates/js/translated/stock.js:139
msgid "Edit Stock Location"
msgstr "Bewerk voorraadlocatie"
@@ -6204,7 +6308,7 @@ msgstr ""
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:727 templates/js/translated/stock.js:1066
+#: stock/views.py:727 templates/js/translated/stock.js:1074
msgid "Confirm stock adjustment"
msgstr ""
@@ -6212,7 +6316,7 @@ msgstr ""
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:324
+#: stock/views.py:760 templates/js/translated/stock.js:332
msgid "Edit Stock Item"
msgstr ""
@@ -6224,7 +6328,7 @@ msgstr "Maak nieuwe voorraadlocatie"
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1153 templates/js/translated/stock.js:304
+#: stock/views.py:1153 templates/js/translated/stock.js:312
msgid "Duplicate Stock Item"
msgstr ""
@@ -6268,6 +6372,18 @@ msgstr ""
msgid "The requested page does not exist"
msgstr ""
+#: templates/500.html:5 templates/500.html:11
+msgid "Internal Server Error"
+msgstr ""
+
+#: templates/500.html:14
+msgid "The InvenTree server raised an internal error"
+msgstr ""
+
+#: templates/500.html:15
+msgid "Refer to the error log in the admin interface for further details"
+msgstr ""
+
#: templates/503.html:10 templates/503.html:35
msgid "Site is in Maintenance"
msgstr ""
@@ -6390,7 +6506,7 @@ msgid "Signup"
msgstr ""
#: templates/InvenTree/settings/mixins/settings.html:5
-#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:118
+#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113
msgid "Settings"
msgstr ""
@@ -6431,43 +6547,43 @@ msgstr ""
msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage."
msgstr ""
-#: templates/InvenTree/settings/plugin.html:32
+#: templates/InvenTree/settings/plugin.html:33
msgid "Plugins"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:37
+#: templates/InvenTree/settings/plugin.html:38
#: templates/js/translated/plugin.js:15
msgid "Install Plugin"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:46 templates/navbar.html:111
+#: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111
#: users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin.html:49
#: templates/InvenTree/settings/plugin_settings.html:28
msgid "Author"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:50
+#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin_settings.html:43
msgid "Version"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:91
+#: templates/InvenTree/settings/plugin.html:92
msgid "Inactive plugins"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:114
+#: templates/InvenTree/settings/plugin.html:115
msgid "Plugin Error Stack"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:123
+#: templates/InvenTree/settings/plugin.html:124
msgid "Stage"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:125
+#: templates/InvenTree/settings/plugin.html:126
msgid "Message"
msgstr ""
@@ -6555,37 +6671,37 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:75
+#: templates/InvenTree/settings/settings.html:78
msgid "Edit Plugin Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:77
+#: templates/InvenTree/settings/settings.html:80
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:79
+#: templates/InvenTree/settings/settings.html:82
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:168
+#: templates/InvenTree/settings/settings.html:171
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:190
-#: templates/InvenTree/settings/settings.html:289
+#: templates/InvenTree/settings/settings.html:193
+#: templates/InvenTree/settings/settings.html:292
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:191
-#: templates/InvenTree/settings/settings.html:290
+#: templates/InvenTree/settings/settings.html:194
+#: templates/InvenTree/settings/settings.html:293
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:269
+#: templates/InvenTree/settings/settings.html:272
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:273
+#: templates/InvenTree/settings/settings.html:276
msgid "ID"
msgstr ""
@@ -6763,124 +6879,105 @@ msgstr ""
msgid "Remove multifactor"
msgstr ""
-#: templates/InvenTree/settings/user.html:219
+#: templates/InvenTree/settings/user.html:220
+msgid "Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:226
+msgid "Log out active sessions (except this one)"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:227
+msgid "Log Out Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:236
+msgid "unknown on unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:237
+msgid "unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:241
+msgid "IP Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:242
+msgid "Device"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:243
+msgid "Last Activity"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:252
+#, python-format
+msgid "%(time)s ago (this session)"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:254
+#, python-format
+msgid "%(time)s ago"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:266
+msgid "Do you really want to remove the selected email address?"
+msgstr ""
+
#: templates/InvenTree/settings/user_display.html:25
msgid "Theme Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:227
#: templates/InvenTree/settings/user_display.html:35
msgid "Select theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:237
#: templates/InvenTree/settings/user_display.html:46
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:246
#: templates/InvenTree/settings/user_display.html:54
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:254
#: templates/InvenTree/settings/user_display.html:63
msgid "Select language"
msgstr ""
-#: templates/InvenTree/settings/user.html:270
#: templates/InvenTree/settings/user_display.html:79
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:272
#: templates/InvenTree/settings/user_display.html:81
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:279
#: templates/InvenTree/settings/user_display.html:88
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:281
#: templates/InvenTree/settings/user_display.html:91
msgid "Some languages are not complete"
msgstr ""
-#: templates/InvenTree/settings/user.html:283
#: templates/InvenTree/settings/user_display.html:93
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user.html:285
+#: templates/InvenTree/settings/user_display.html:95
+msgid "and hidden."
+msgstr ""
+
#: templates/InvenTree/settings/user_display.html:95
msgid "Show them too"
msgstr ""
-#: templates/InvenTree/settings/user.html:292
#: templates/InvenTree/settings/user_display.html:101
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user.html:293
-#, python-format
-msgid "Native language translation of the\n"
-" InvenTree web application is community contributed via crowdin. Contributions are\n"
-" welcomed and encouraged."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:302
-msgid "Active Sessions"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:308
-msgid "Log out active sessions (except this one)"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:309
-msgid "Log Out Active Sessions"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:318
-msgid "unknown on unknown"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:319
-msgid "unknown"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:323
-msgid "IP Address"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:324
-msgid "Device"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:325
-msgid "Last Activity"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:334
-#, python-format
-msgid "%(time)s ago (this session)"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:336
-#, python-format
-msgid "%(time)s ago"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:348
-msgid "Do you really want to remove the selected email address?"
-msgstr ""
-
-#: templates/InvenTree/settings/user_display.html:95
-msgid "and hidden."
-msgstr ""
-
#: templates/InvenTree/settings/user_display.html:102
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
@@ -6899,9 +6996,9 @@ msgid "InvenTree Version Information"
msgstr ""
#: templates/about.html:11 templates/about.html:105
-#: templates/js/translated/bom.js:395 templates/js/translated/modals.js:53
-#: templates/js/translated/modals.js:573 templates/js/translated/modals.js:667
-#: templates/js/translated/modals.js:970 templates/modals.html:15
+#: templates/js/translated/bom.js:407 templates/js/translated/modals.js:53
+#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
+#: templates/js/translated/modals.js:983 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -7178,13 +7275,13 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1103
+#: templates/js/translated/bom.js:1117
msgid "Required Quantity"
msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:579 templates/js/translated/build.js:1189
+#: templates/js/translated/bom.js:591 templates/js/translated/build.js:1189
#: templates/js/translated/build.js:1810
#: templates/js/translated/table_filters.js:178
msgid "Available"
@@ -7208,10 +7305,6 @@ msgstr ""
msgid "Click on the following link to view this part"
msgstr ""
-#: templates/email/low_stock_notification.html:17
-msgid "Total Stock"
-msgstr ""
-
#: templates/email/low_stock_notification.html:19
msgid "Minimum Quantity"
msgstr ""
@@ -7232,11 +7325,11 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1040
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1053
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1041
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1054
msgid "No response from the InvenTree server"
msgstr ""
@@ -7248,27 +7341,27 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1063
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1051
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1064
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1068
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1056
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1069
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1073
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1061
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1074
msgid "The requested resource could not be located on the server"
msgstr ""
@@ -7280,11 +7373,11 @@ msgstr ""
msgid "HTTP method not allowed at URL"
msgstr ""
-#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1065
+#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1078
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1079
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -7353,7 +7446,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:140
-#: templates/js/translated/modals.js:1030
+#: templates/js/translated/modals.js:1043
msgid "Invalid server response"
msgstr ""
@@ -7381,7 +7474,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1018
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026
msgid "Remove stock item"
msgstr ""
@@ -7428,12 +7521,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73
-#: templates/js/translated/order.js:369 templates/js/translated/stock.js:510
+#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74
-#: templates/js/translated/order.js:370 templates/js/translated/stock.js:511
+#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519
msgid "Select file format"
msgstr ""
@@ -7489,87 +7582,87 @@ msgstr ""
msgid "Remove substitute part"
msgstr ""
-#: templates/js/translated/bom.js:340
-msgid "Select and add a new variant item using the input below"
+#: templates/js/translated/bom.js:352
+msgid "Select and add a new substitute part using the input below"
msgstr ""
-#: templates/js/translated/bom.js:351
+#: templates/js/translated/bom.js:363
msgid "Are you sure you wish to remove this substitute part link?"
msgstr ""
-#: templates/js/translated/bom.js:357
+#: templates/js/translated/bom.js:369
msgid "Remove Substitute Part"
msgstr ""
-#: templates/js/translated/bom.js:396
+#: templates/js/translated/bom.js:408
msgid "Add Substitute"
msgstr ""
-#: templates/js/translated/bom.js:397
+#: templates/js/translated/bom.js:409
msgid "Edit BOM Item Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:516
+#: templates/js/translated/bom.js:528
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:520 templates/js/translated/build.js:1171
+#: templates/js/translated/bom.js:532 templates/js/translated/build.js:1171
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:525
+#: templates/js/translated/bom.js:537
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:597
+#: templates/js/translated/bom.js:609
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:612
+#: templates/js/translated/bom.js:624
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:619
+#: templates/js/translated/bom.js:631
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:668 templates/js/translated/bom.js:757
+#: templates/js/translated/bom.js:680 templates/js/translated/bom.js:769
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:728
+#: templates/js/translated/bom.js:740
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:730
+#: templates/js/translated/bom.js:742
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:732
+#: templates/js/translated/bom.js:744
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:734 templates/js/translated/bom.js:908
+#: templates/js/translated/bom.js:746 templates/js/translated/bom.js:920
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:736 templates/js/translated/bom.js:891
+#: templates/js/translated/bom.js:748 templates/js/translated/bom.js:903
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:830 templates/js/translated/build.js:915
+#: templates/js/translated/bom.js:842 templates/js/translated/build.js:915
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:886
+#: templates/js/translated/bom.js:898
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:1086 templates/js/translated/build.js:1155
+#: templates/js/translated/bom.js:1100 templates/js/translated/build.js:1155
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1108
+#: templates/js/translated/bom.js:1122
msgid "Inherited from parent BOM"
msgstr ""
@@ -7725,9 +7818,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1206
-#: templates/js/translated/part.js:1617 templates/js/translated/stock.js:1512
-#: templates/js/translated/stock.js:2321
+#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1213
+#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1520
+#: templates/js/translated/stock.js:2479
msgid "Select"
msgstr ""
@@ -7735,7 +7828,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2540
+#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2698
msgid "No user information"
msgstr ""
@@ -7808,34 +7901,34 @@ msgid "No manufacturer parts found"
msgstr "Geen fabricage onderdelen gevonden"
#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:511
-#: templates/js/translated/part.js:596
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:517
+#: templates/js/translated/part.js:602
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:515
-#: templates/js/translated/part.js:600
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:521
+#: templates/js/translated/part.js:606
msgid "Assembled part"
msgstr "Samengesteld onderdeel"
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:690
+#: templates/js/translated/company.js:631 templates/js/translated/part.js:696
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:732
+#: templates/js/translated/company.js:668 templates/js/translated/part.js:738
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:733
+#: templates/js/translated/company.js:669 templates/js/translated/part.js:739
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:750
+#: templates/js/translated/company.js:688 templates/js/translated/part.js:756
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:762
+#: templates/js/translated/company.js:699 templates/js/translated/part.js:768
msgid "Delete Parameter"
msgstr ""
@@ -7844,12 +7937,12 @@ msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:420
+#: templates/js/translated/filters.js:429
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:421
+#: templates/js/translated/filters.js:430
msgid "false"
msgstr ""
@@ -7869,7 +7962,7 @@ msgstr ""
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:329
+#: templates/js/translated/filters.js:338
msgid "Create filter"
msgstr ""
@@ -7898,20 +7991,20 @@ msgstr ""
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1080 templates/modals.html:19
+#: templates/js/translated/forms.js:1082 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1471
+#: templates/js/translated/forms.js:1487
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1675
+#: templates/js/translated/forms.js:1691
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1895
+#: templates/js/translated/forms.js:1930
msgid "Clear input"
msgstr ""
@@ -7924,7 +8017,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1042
+#: templates/js/translated/stock.js:1050
msgid "Select Stock Items"
msgstr ""
@@ -7974,12 +8067,12 @@ msgid "Select Label Template"
msgstr ""
#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
-#: templates/js/translated/modals.js:599
+#: templates/js/translated/modals.js:610
msgid "Cancel"
msgstr ""
#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:666 templates/js/translated/modals.js:969
+#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:982
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
@@ -7988,47 +8081,47 @@ msgstr ""
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:381
+#: templates/js/translated/modals.js:392
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:540
+#: templates/js/translated/modals.js:551
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:598
+#: templates/js/translated/modals.js:609
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:655
+#: templates/js/translated/modals.js:666
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:921
+#: templates/js/translated/modals.js:934
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:921
+#: templates/js/translated/modals.js:934
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:946
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1030
+#: templates/js/translated/modals.js:1043
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1045
+#: templates/js/translated/modals.js:1058
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1046
+#: templates/js/translated/modals.js:1059
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1069
+#: templates/js/translated/modals.js:1082
msgid "Error requesting form data"
msgstr ""
@@ -8052,23 +8145,24 @@ msgstr ""
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:236
+#: templates/js/translated/model_renderers.js:249
+#: templates/js/translated/model_renderers.js:270
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:253
+#: templates/js/translated/model_renderers.js:287
msgid "Shipment ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:273
+#: templates/js/translated/model_renderers.js:307
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:310
+#: templates/js/translated/model_renderers.js:344
msgid "Manufacturer Part ID"
msgstr "Onderdeelnummer fabrikant"
-#: templates/js/translated/model_renderers.js:339
+#: templates/js/translated/model_renderers.js:373
msgid "Supplier Part ID"
msgstr ""
@@ -8116,7 +8210,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2123
+#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2131
msgid "Stock Status"
msgstr ""
@@ -8140,7 +8234,7 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:790 templates/js/translated/part.js:803
+#: templates/js/translated/order.js:790 templates/js/translated/part.js:809
msgid "No purchase orders found"
msgstr ""
@@ -8165,7 +8259,7 @@ msgid "Total"
msgstr ""
#: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163
-#: templates/js/translated/part.js:1834 templates/js/translated/part.js:2045
+#: templates/js/translated/part.js:1841 templates/js/translated/part.js:2052
msgid "Unit Price"
msgstr ""
@@ -8181,7 +8275,7 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1166 templates/js/translated/part.js:935
+#: templates/js/translated/order.js:1166 templates/js/translated/part.js:942
msgid "Receive line item"
msgstr ""
@@ -8250,7 +8344,7 @@ msgid "Delete Stock Allocation"
msgstr ""
#: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048
-#: templates/js/translated/stock.js:1428
+#: templates/js/translated/stock.js:1436
msgid "Shipped to customer"
msgstr ""
@@ -8378,144 +8472,148 @@ msgstr ""
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:412
+#: templates/js/translated/part.js:351
+msgid "Create Part Variant"
+msgstr ""
+
+#: templates/js/translated/part.js:418
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:414
+#: templates/js/translated/part.js:420
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:419
+#: templates/js/translated/part.js:425
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:421
+#: templates/js/translated/part.js:427
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:438
+#: templates/js/translated/part.js:444
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:448
+#: templates/js/translated/part.js:454
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:451
+#: templates/js/translated/part.js:457
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:475
+#: templates/js/translated/part.js:481
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:503 templates/js/translated/part.js:588
+#: templates/js/translated/part.js:509 templates/js/translated/part.js:594
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:507 templates/js/translated/part.js:592
+#: templates/js/translated/part.js:513 templates/js/translated/part.js:598
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:519
+#: templates/js/translated/part.js:525
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:529
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:638
+#: templates/js/translated/part.js:644
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1005
+#: templates/js/translated/part.js:1012
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1029
+#: templates/js/translated/part.js:1036
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1096 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:1363
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1266
+#: templates/js/translated/part.js:1273
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1289
+#: templates/js/translated/part.js:1296
#: templates/js/translated/table_filters.js:430
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1380 templates/js/translated/part.js:1552
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559
+#: templates/js/translated/stock.js:2440
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1396
+#: templates/js/translated/part.js:1403
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1571 templates/js/translated/stock.js:2301
+#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2459
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1635
+#: templates/js/translated/part.js:1642
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1649 templates/js/translated/stock.js:2345
+#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2503
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1693
+#: templates/js/translated/part.js:1700
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1744 templates/js/translated/stock.js:1234
+#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1242
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1745 templates/js/translated/stock.js:1235
+#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1243
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1751
+#: templates/js/translated/part.js:1758
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1773
+#: templates/js/translated/part.js:1780
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1787
+#: templates/js/translated/part.js:1794
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1812
+#: templates/js/translated/part.js:1819
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1867
+#: templates/js/translated/part.js:1874
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1868
+#: templates/js/translated/part.js:1875
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1969
+#: templates/js/translated/part.js:1976
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1988
+#: templates/js/translated/part.js:1995
msgid "Single Price Difference"
msgstr ""
@@ -8589,340 +8687,344 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:73
+#: templates/js/translated/stock.js:74
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:173
+#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:181
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/stock.js:93 templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:94 templates/js/translated/stock.js:183
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/stock.js:101
+#: templates/js/translated/stock.js:102
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:110
+#: templates/js/translated/stock.js:111
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:146
+#: templates/js/translated/stock.js:154
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:186
+#: templates/js/translated/stock.js:194
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:225
+#: templates/js/translated/stock.js:233
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:231
+#: templates/js/translated/stock.js:239
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:374
+#: templates/js/translated/stock.js:382
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:387
+#: templates/js/translated/stock.js:395
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:412
+#: templates/js/translated/stock.js:420
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:416 templates/js/translated/stock.js:417
+#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:433
+#: templates/js/translated/stock.js:441
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:453
+#: templates/js/translated/stock.js:461
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:462
+#: templates/js/translated/stock.js:470
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:507
+#: templates/js/translated/stock.js:515
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:518
+#: templates/js/translated/stock.js:526
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:527
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:628
+#: templates/js/translated/stock.js:636
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:629
+#: templates/js/translated/stock.js:637
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:706
+#: templates/js/translated/stock.js:714
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:707
+#: templates/js/translated/stock.js:715
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:709
+#: templates/js/translated/stock.js:717
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:710
+#: templates/js/translated/stock.js:718
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:796
+#: templates/js/translated/stock.js:804
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:797
+#: templates/js/translated/stock.js:805
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:892
+#: templates/js/translated/stock.js:900
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:893
+#: templates/js/translated/stock.js:901
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:899
+#: templates/js/translated/stock.js:907
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:900
+#: templates/js/translated/stock.js:908
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:904
+#: templates/js/translated/stock.js:912
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:905
+#: templates/js/translated/stock.js:913
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:909
+#: templates/js/translated/stock.js:917
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:910 users/models.py:206
+#: templates/js/translated/stock.js:918 users/models.py:208
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:914 templates/stock_table.html:58
+#: templates/js/translated/stock.js:922 templates/stock_table.html:58
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1003
+#: templates/js/translated/stock.js:1011
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1003
+#: templates/js/translated/stock.js:1011
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1043
+#: templates/js/translated/stock.js:1051
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1201
+#: templates/js/translated/stock.js:1209
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1211
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1208
+#: templates/js/translated/stock.js:1216
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1230
+#: templates/js/translated/stock.js:1238
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1256
+#: templates/js/translated/stock.js:1264
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1313
+#: templates/js/translated/stock.js:1321
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1420
+#: templates/js/translated/stock.js:1428
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1424
+#: templates/js/translated/stock.js:1432
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1432
+#: templates/js/translated/stock.js:1440
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1438
+#: templates/js/translated/stock.js:1446
msgid "No stock location set"
msgstr "Geen voorraadlocatie ingesteld"
-#: templates/js/translated/stock.js:1596
+#: templates/js/translated/stock.js:1604
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1601
+#: templates/js/translated/stock.js:1609
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1612
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/stock.js:1616
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1610
+#: templates/js/translated/stock.js:1618
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1616
+#: templates/js/translated/stock.js:1624
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1626
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1620
+#: templates/js/translated/stock.js:1628
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1625
+#: templates/js/translated/stock.js:1633
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1632
+#: templates/js/translated/stock.js:1640
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1634
+#: templates/js/translated/stock.js:1642
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1644
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1640
+#: templates/js/translated/stock.js:1648
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1698
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1763
+#: templates/js/translated/stock.js:1771
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1801
+#: templates/js/translated/stock.js:1809
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1822 templates/js/translated/stock.js:1870
+#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:1878
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1910
+#: templates/js/translated/stock.js:1918
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1937
+#: templates/js/translated/stock.js:1945
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1939
+#: templates/js/translated/stock.js:1947
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:2138
+#: templates/js/translated/stock.js:2146
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2152
+#: templates/js/translated/stock.js:2160
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2153
+#: templates/js/translated/stock.js:2161
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2377
+#: templates/js/translated/stock.js:2340
+msgid "Allocated Quantity"
+msgstr ""
+
+#: templates/js/translated/stock.js:2535
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:2399
+#: templates/js/translated/stock.js:2557
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2424
+#: templates/js/translated/stock.js:2582
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2443
+#: templates/js/translated/stock.js:2601
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2462
+#: templates/js/translated/stock.js:2620
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2480
+#: templates/js/translated/stock.js:2638
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2503
+#: templates/js/translated/stock.js:2661
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2511
+#: templates/js/translated/stock.js:2669
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2552
+#: templates/js/translated/stock.js:2710
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2553
+#: templates/js/translated/stock.js:2711
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2604
+#: templates/js/translated/stock.js:2762
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2655
+#: templates/js/translated/stock.js:2813
msgid "Uninstall Stock Item"
msgstr ""
@@ -9194,11 +9296,11 @@ msgstr "Inkoop"
msgid "Sell"
msgstr "Verkoop"
-#: templates/navbar.html:113
+#: templates/navbar.html:114
msgid "Logout"
msgstr ""
-#: templates/navbar.html:115
+#: templates/navbar.html:116
msgid "Login"
msgstr ""
@@ -9246,31 +9348,43 @@ msgstr ""
msgid "Server is deployed using docker"
msgstr ""
-#: templates/stats.html:40
-msgid "Server status"
+#: templates/stats.html:39
+msgid "Plugin Support"
msgstr ""
#: templates/stats.html:43
-msgid "Healthy"
+msgid "Plugin support enabled"
msgstr ""
#: templates/stats.html:45
-msgid "Issues detected"
+msgid "Plugin support disabled"
msgstr ""
#: templates/stats.html:52
-msgid "Background Worker"
+msgid "Server status"
msgstr ""
#: templates/stats.html:55
+msgid "Healthy"
+msgstr ""
+
+#: templates/stats.html:57
+msgid "Issues detected"
+msgstr ""
+
+#: templates/stats.html:64
+msgid "Background Worker"
+msgstr ""
+
+#: templates/stats.html:67
msgid "Background worker not running"
msgstr ""
-#: templates/stats.html:63
+#: templates/stats.html:75
msgid "Email Settings"
msgstr ""
-#: templates/stats.html:66
+#: templates/stats.html:78
msgid "Email settings not configured"
msgstr ""
@@ -9366,35 +9480,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:193
+#: users/models.py:195
msgid "Permission set"
msgstr ""
-#: users/models.py:201
+#: users/models.py:203
msgid "Group"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
msgid "View"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
msgid "Permission to view items"
msgstr ""
-#: users/models.py:206
+#: users/models.py:208
msgid "Permission to add items"
msgstr ""
-#: users/models.py:208
+#: users/models.py:210
msgid "Change"
msgstr ""
-#: users/models.py:208
+#: users/models.py:210
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:210
+#: users/models.py:212
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/no/LC_MESSAGES/django.po b/InvenTree/locale/no/LC_MESSAGES/django.po
index 340a4b4fc7..9af733aa18 100644
--- a/InvenTree/locale/no/LC_MESSAGES/django.po
+++ b/InvenTree/locale/no/LC_MESSAGES/django.po
@@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-01-10 03:54+0000\n"
-"PO-Revision-Date: 2022-01-10 03:57\n"
+"POT-Creation-Date: 2022-01-29 00:17+0000\n"
+"PO-Revision-Date: 2022-01-29 01:11\n"
"Last-Translator: \n"
"Language-Team: Norwegian\n"
"Language: no_NO\n"
@@ -18,15 +18,15 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 138\n"
-#: InvenTree/api.py:64
+#: InvenTree/api.py:55
msgid "API endpoint not found"
msgstr "API endepunkt ikke funnet"
-#: InvenTree/api.py:110
+#: InvenTree/api.py:101
msgid "No action specified"
msgstr "Ingen handling spesifisert"
-#: InvenTree/api.py:124
+#: InvenTree/api.py:116
msgid "No matching action found"
msgstr "Ingen samsvarende handling funnet"
@@ -46,7 +46,7 @@ msgstr "Bekreft sletting"
#: InvenTree/forms.py:143
msgid "Confirm item deletion"
-msgstr ""
+msgstr "Bekfret sletting av element"
#: InvenTree/forms.py:174
msgid "Enter password"
@@ -70,64 +70,64 @@ msgstr "Velg kategori"
#: InvenTree/forms.py:236
msgid "Email (again)"
-msgstr ""
+msgstr "E-post (gjenta)"
#: InvenTree/forms.py:240
msgid "Email address confirmation"
-msgstr ""
+msgstr "Bekreftelsen på e-postaddresse"
#: InvenTree/forms.py:260
msgid "You must type the same email each time."
-msgstr ""
+msgstr "Du må angi samme e-post hver gang."
-#: InvenTree/helpers.py:437
+#: InvenTree/helpers.py:439
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr "Dupliser serie: {n}"
-#: InvenTree/helpers.py:444 order/models.py:279 order/models.py:420
+#: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425
#: stock/views.py:1231
msgid "Invalid quantity provided"
msgstr "Ugyldig mengde oppgitt"
-#: InvenTree/helpers.py:447
+#: InvenTree/helpers.py:449
msgid "Empty serial number string"
msgstr "Tom serienummerstreng"
-#: InvenTree/helpers.py:469 InvenTree/helpers.py:472 InvenTree/helpers.py:475
-#: InvenTree/helpers.py:500
+#: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477
+#: InvenTree/helpers.py:502
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Ugyldig gruppe: {g}"
-#: InvenTree/helpers.py:510
+#: InvenTree/helpers.py:512
#, python-brace-format
msgid "Invalid group {group}"
-msgstr ""
+msgstr "Ugyldig gruppe {group}"
-#: InvenTree/helpers.py:516
+#: InvenTree/helpers.py:518
#, python-brace-format
msgid "Invalid/no group {group}"
-msgstr ""
+msgstr "Ugyldig/ingen gruppe {group}"
-#: InvenTree/helpers.py:522
+#: InvenTree/helpers.py:524
msgid "No serial numbers found"
msgstr "Ingen serienummer funnet"
-#: InvenTree/helpers.py:526
+#: InvenTree/helpers.py:528
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Antall unike serienummer ({s}) må samsvare mengde ({q})"
#: InvenTree/models.py:120
msgid "Missing file"
-msgstr ""
+msgstr "Fil mangler"
#: InvenTree/models.py:121
msgid "Missing external link"
-msgstr ""
+msgstr "Mangler eksternlenke"
-#: InvenTree/models.py:132 stock/models.py:1967
+#: InvenTree/models.py:132 stock/models.py:1995
#: templates/js/translated/attachment.js:119
msgid "Attachment"
msgstr "Vedlegg"
@@ -137,17 +137,17 @@ msgid "Select file to attach"
msgstr "Velg fil å legge ved"
#: InvenTree/models.py:139 company/models.py:131 company/models.py:348
-#: company/models.py:564 order/models.py:124 part/models.py:828
+#: company/models.py:564 order/models.py:127 part/models.py:830
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1317
+#: templates/js/translated/company.js:829 templates/js/translated/part.js:1324
msgid "Link"
-msgstr ""
+msgstr "Lenke"
-#: InvenTree/models.py:140 build/models.py:330 part/models.py:829
-#: stock/models.py:527
+#: InvenTree/models.py:140 build/models.py:332 part/models.py:831
+#: stock/models.py:529
msgid "Link to external URL"
-msgstr ""
+msgstr "Lenke til ekstern URL"
#: InvenTree/models.py:143 templates/js/translated/attachment.js:163
msgid "Comment"
@@ -157,10 +157,11 @@ msgstr "Kommenter"
msgid "File comment"
msgstr "Kommentar til fil"
-#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213
-#: common/models.py:1214 part/models.py:2258 part/models.py:2278
+#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1223
+#: common/models.py:1224 common/models.py:1452 common/models.py:1453
+#: part/models.py:2265 part/models.py:2285
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2534
+#: templates/js/translated/stock.js:2692
msgid "User"
msgstr "Bruker"
@@ -170,69 +171,69 @@ msgstr "opplastet dato"
#: InvenTree/models.py:176
msgid "Filename must not be empty"
-msgstr ""
+msgstr "Filnavn må ikke være tom"
#: InvenTree/models.py:199
msgid "Invalid attachment directory"
-msgstr ""
+msgstr "Ugyldig vedleggskatalog"
#: InvenTree/models.py:209
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
-msgstr ""
+msgstr "Filnavn inneholder ugyldig tegn '{c}'"
#: InvenTree/models.py:212
msgid "Filename missing extension"
-msgstr ""
+msgstr "Filnavn mangler filtype"
#: InvenTree/models.py:219
msgid "Attachment with this filename already exists"
-msgstr ""
+msgstr "Vedlegg med dette filnavnet finnes allerede"
#: InvenTree/models.py:226
msgid "Error renaming file"
-msgstr ""
+msgstr "Feil ved endring av navn"
#: InvenTree/models.py:261
msgid "Invalid choice"
msgstr "Ugyldig valg"
-#: InvenTree/models.py:277 InvenTree/models.py:278 company/models.py:415
-#: label/models.py:112 part/models.py:772 part/models.py:2442
-#: plugin/models.py:40 report/models.py:181
+#: InvenTree/models.py:277 InvenTree/models.py:278 common/models.py:1438
+#: company/models.py:415 label/models.py:112 part/models.py:774
+#: part/models.py:2449 plugin/models.py:40 report/models.py:181
#: templates/InvenTree/settings/mixins/urls.html:13
-#: templates/InvenTree/settings/plugin.html:47
-#: templates/InvenTree/settings/plugin.html:124
+#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin.html:125
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:279
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:561
-#: templates/js/translated/part.js:700 templates/js/translated/part.js:1624
-#: templates/js/translated/stock.js:2327
+#: templates/InvenTree/settings/settings.html:282
+#: templates/js/translated/company.js:641 templates/js/translated/part.js:567
+#: templates/js/translated/part.js:706 templates/js/translated/part.js:1631
+#: templates/js/translated/stock.js:2485
msgid "Name"
msgstr "Navn"
-#: InvenTree/models.py:284 build/models.py:207
+#: InvenTree/models.py:284 build/models.py:209
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:73 label/models.py:119
-#: order/models.py:122 part/models.py:795 part/templates/part/category.html:74
+#: order/models.py:125 part/models.py:797 part/templates/part/category.html:74
#: part/templates/part/part_base.html:163
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:93
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:327 templates/js/translated/bom.js:540
+#: templates/js/translated/bom.js:339 templates/js/translated/bom.js:552
#: templates/js/translated/build.js:1682 templates/js/translated/company.js:345
#: templates/js/translated/company.js:551
#: templates/js/translated/company.js:840 templates/js/translated/order.js:836
#: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258
-#: templates/js/translated/part.js:620 templates/js/translated/part.js:992
-#: templates/js/translated/part.js:1077 templates/js/translated/part.js:1247
-#: templates/js/translated/part.js:1643 templates/js/translated/part.js:1712
-#: templates/js/translated/stock.js:1569 templates/js/translated/stock.js:2339
-#: templates/js/translated/stock.js:2384
+#: templates/js/translated/part.js:626 templates/js/translated/part.js:999
+#: templates/js/translated/part.js:1084 templates/js/translated/part.js:1254
+#: templates/js/translated/part.js:1650 templates/js/translated/part.js:1719
+#: templates/js/translated/stock.js:1577 templates/js/translated/stock.js:2314
+#: templates/js/translated/stock.js:2497 templates/js/translated/stock.js:2542
msgid "Description"
msgstr "Beskrivelse"
@@ -242,93 +243,93 @@ msgstr "Beskrivelse (valgfritt)"
#: InvenTree/models.py:293
msgid "parent"
-msgstr ""
+msgstr "overkategori"
-#: InvenTree/serializers.py:65 part/models.py:2727
+#: InvenTree/serializers.py:65 part/models.py:2734
msgid "Must be a valid number"
msgstr "Nummer må være gyldig"
#: InvenTree/serializers.py:299
msgid "Filename"
-msgstr ""
+msgstr "Filnavn"
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:661
msgid "German"
msgstr "Tysk"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:662
msgid "Greek"
msgstr "Gresk"
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:663
msgid "English"
msgstr "Engelsk"
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:664
msgid "Spanish"
msgstr "Spansk"
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:665
msgid "Spanish (Mexican)"
-msgstr ""
+msgstr "Spansk (Meksikansk)"
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:666
msgid "French"
msgstr "Fransk"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:667
msgid "Hebrew"
msgstr "Hebraisk"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:668
msgid "Italian"
msgstr "Italiensk"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:669
msgid "Japanese"
msgstr "Japansk"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:670
msgid "Korean"
msgstr "Koreansk"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:671
msgid "Dutch"
msgstr "Nederlandsk"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:672
msgid "Norwegian"
msgstr "Norsk"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:673
msgid "Polish"
msgstr "Polsk"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:674
msgid "Portugese"
-msgstr ""
+msgstr "Portugesisk"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:675
msgid "Russian"
msgstr "Russisk"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:676
msgid "Swedish"
msgstr "Svensk"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:677
msgid "Thai"
msgstr "Thailandsk"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:678
msgid "Turkish"
msgstr "Tyrkisk"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:679
msgid "Vietnamese"
msgstr "Vietnamesisk"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:680
msgid "Chinese"
msgstr "Kinesisk"
@@ -338,261 +339,261 @@ msgstr "Bakgrunnsarbeiderkontroll mislyktes"
#: InvenTree/status.py:98
msgid "Email backend not configured"
-msgstr ""
+msgstr "E-post backend ikke konfigurert"
#: InvenTree/status.py:101
msgid "InvenTree system health checks failed"
-msgstr ""
+msgstr "Helsekontroll av IvenTree system mislyktes"
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
#: InvenTree/status_codes.py:316 templates/js/translated/table_filters.js:313
msgid "Pending"
-msgstr ""
+msgstr "Ventende"
#: InvenTree/status_codes.py:102
msgid "Placed"
-msgstr ""
+msgstr "Plassert"
#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:319
#: order/templates/order/order_base.html:128
#: order/templates/order/sales_order_base.html:132
msgid "Complete"
-msgstr ""
+msgstr "Fullført"
#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
#: InvenTree/status_codes.py:318
msgid "Cancelled"
-msgstr ""
+msgstr "Kansellert"
#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
#: InvenTree/status_codes.py:187
msgid "Lost"
-msgstr ""
+msgstr "Tapt"
#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
#: InvenTree/status_codes.py:189
msgid "Returned"
-msgstr ""
+msgstr "Returnert"
-#: InvenTree/status_codes.py:143 order/models.py:941
+#: InvenTree/status_codes.py:143 order/models.py:961
#: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255
msgid "Shipped"
-msgstr ""
+msgstr "Sendt"
#: InvenTree/status_codes.py:183
msgid "OK"
-msgstr ""
+msgstr "OK"
#: InvenTree/status_codes.py:184
msgid "Attention needed"
-msgstr ""
+msgstr "Merknad nødvendig"
#: InvenTree/status_codes.py:185
msgid "Damaged"
-msgstr ""
+msgstr "Skadet"
#: InvenTree/status_codes.py:186
msgid "Destroyed"
-msgstr ""
+msgstr "Ødelagt"
#: InvenTree/status_codes.py:188
msgid "Rejected"
-msgstr ""
+msgstr "Avvist"
#: InvenTree/status_codes.py:272
msgid "Legacy stock tracking entry"
-msgstr ""
+msgstr "Legacy stock sporingsoppføring"
#: InvenTree/status_codes.py:274
msgid "Stock item created"
-msgstr ""
+msgstr "Lagevare opprettet"
#: InvenTree/status_codes.py:276
msgid "Edited stock item"
-msgstr ""
+msgstr "Redigerte lagervare"
#: InvenTree/status_codes.py:277
msgid "Assigned serial number"
-msgstr ""
+msgstr "Tildelt serienummer"
#: InvenTree/status_codes.py:279
msgid "Stock counted"
-msgstr ""
+msgstr "Lager tellet"
#: InvenTree/status_codes.py:280
msgid "Stock manually added"
-msgstr ""
+msgstr "Lager manuelt lagt til"
#: InvenTree/status_codes.py:281
msgid "Stock manually removed"
-msgstr ""
+msgstr "Lager manuelt fjernet"
#: InvenTree/status_codes.py:283
msgid "Location changed"
-msgstr ""
+msgstr "Posisjon endret"
#: InvenTree/status_codes.py:285
msgid "Installed into assembly"
-msgstr ""
+msgstr "Installert i montering"
#: InvenTree/status_codes.py:286
msgid "Removed from assembly"
-msgstr ""
+msgstr "Fjernet fra montering"
#: InvenTree/status_codes.py:288
msgid "Installed component item"
-msgstr ""
+msgstr "Installert komponentelement"
#: InvenTree/status_codes.py:289
msgid "Removed component item"
-msgstr ""
+msgstr "Fjernet komponentelement"
#: InvenTree/status_codes.py:291
msgid "Split from parent item"
-msgstr ""
+msgstr "Delt fra overordnet element"
#: InvenTree/status_codes.py:292
msgid "Split child item"
-msgstr ""
+msgstr "Delt fra underelement"
-#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2064
+#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2072
msgid "Merged stock items"
-msgstr ""
+msgstr "Sammenslått lagervare"
#: InvenTree/status_codes.py:296 templates/js/translated/table_filters.js:213
msgid "Sent to customer"
-msgstr ""
+msgstr "Sendt til kunde"
#: InvenTree/status_codes.py:297
msgid "Returned from customer"
-msgstr ""
+msgstr "Returnert av kunde"
#: InvenTree/status_codes.py:299
msgid "Build order output created"
-msgstr ""
+msgstr "Build ordreutgang opprettet"
#: InvenTree/status_codes.py:300
msgid "Build order output completed"
-msgstr ""
+msgstr "Build ordreutg fullført"
#: InvenTree/status_codes.py:302
msgid "Received against purchase order"
-msgstr ""
+msgstr "Mottatt mot innkjøpsordre"
#: InvenTree/status_codes.py:317
msgid "Production"
-msgstr ""
+msgstr "Produksjon"
#: InvenTree/validators.py:23
msgid "Not a valid currency code"
-msgstr ""
+msgstr "Ikke en gyldig valutanr"
#: InvenTree/validators.py:51
msgid "Invalid character in part name"
-msgstr ""
+msgstr "Ugylding tegn i varenavn"
#: InvenTree/validators.py:64
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
-msgstr ""
+msgstr "IPN må matche regex-mønster {pat}"
#: InvenTree/validators.py:78 InvenTree/validators.py:92
#: InvenTree/validators.py:106
#, python-brace-format
msgid "Reference must match pattern {pattern}"
-msgstr ""
+msgstr "Referansen må samsvare med mønster {pattern}"
#: InvenTree/validators.py:114
#, python-brace-format
msgid "Illegal character in name ({x})"
-msgstr ""
+msgstr "Ugyldig tegn i navn ({x})"
#: InvenTree/validators.py:133 InvenTree/validators.py:149
msgid "Overage value must not be negative"
-msgstr ""
+msgstr "Overde-verdien må ikke være negativ"
#: InvenTree/validators.py:151
msgid "Overage must not exceed 100%"
-msgstr ""
+msgstr "Overde må ikke overstige 100%"
#: InvenTree/validators.py:158
msgid "Overage must be an integer value or a percentage"
-msgstr ""
+msgstr "Overde må være en heltallsverdi eller en prosentandel"
#: InvenTree/views.py:538
msgid "Delete Item"
-msgstr ""
+msgstr "Slett element"
#: InvenTree/views.py:587
msgid "Check box to confirm item deletion"
-msgstr ""
+msgstr "Kryss av i boksen for å bekrefte sletting av element"
#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21
msgid "Edit User Information"
-msgstr ""
+msgstr "Rediger brukerinformasjon"
#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19
msgid "Set Password"
-msgstr ""
+msgstr "Velg passord"
#: InvenTree/views.py:632
msgid "Password fields must match"
-msgstr ""
+msgstr "Passordfeltene må samsvare"
#: InvenTree/views.py:883 templates/navbar.html:126
msgid "System Information"
-msgstr ""
+msgstr "Systeminformasjon"
-#: barcodes/api.py:54 barcodes/api.py:151
+#: barcodes/api.py:54 barcodes/api.py:152
msgid "Must provide barcode_data parameter"
msgstr "Må oppgi gyldig strekkode_data parameter"
-#: barcodes/api.py:127
+#: barcodes/api.py:128
msgid "No match found for barcode data"
msgstr "Ingen treff funnet for strekkodedata"
-#: barcodes/api.py:129
+#: barcodes/api.py:130
msgid "Match found for barcode data"
msgstr "Treff funnet for strekkodedata"
-#: barcodes/api.py:154
+#: barcodes/api.py:155
msgid "Must provide stockitem parameter"
msgstr "Må oppgi lagervareparameter"
-#: barcodes/api.py:161
+#: barcodes/api.py:162
msgid "No matching stock item found"
msgstr "Ingen samsvarende lagervare funnet"
-#: barcodes/api.py:191
+#: barcodes/api.py:193
msgid "Barcode already matches Stock Item"
-msgstr ""
+msgstr "Strekkoden samsvarer allerede med lagervare"
-#: barcodes/api.py:195
+#: barcodes/api.py:197
msgid "Barcode already matches Stock Location"
-msgstr ""
+msgstr "Strekkode samsvarer allerede med lagerplassering"
-#: barcodes/api.py:199
+#: barcodes/api.py:201
msgid "Barcode already matches Part"
-msgstr ""
+msgstr "Strekkode samsvarer allerede med delen"
-#: barcodes/api.py:205 barcodes/api.py:217
+#: barcodes/api.py:207 barcodes/api.py:219
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:223
+#: barcodes/api.py:225
msgid "Barcode associated with Stock Item"
-msgstr ""
+msgstr "Strekkode tilknyttet lagervare"
-#: build/forms.py:36 build/models.py:1286
+#: build/forms.py:36 build/models.py:1293
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:35 common/models.py:1253
+#: build/templates/build/detail.html:35 common/models.py:1263
#: company/forms.py:42 company/templates/company/supplier_part.html:251
-#: order/models.py:796 order/models.py:1207 order/serializers.py:810
+#: order/models.py:805 order/models.py:1229 order/serializers.py:816
#: order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:145
-#: part/forms.py:161 part/forms.py:177 part/models.py:2629
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144
+#: part/forms.py:160 part/forms.py:176 part/models.py:2636
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:962 part/templates/part/detail.html:1048
+#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -603,7 +604,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:181
#: stock/templates/stock/item_base.html:262
#: stock/templates/stock/item_base.html:270
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:555
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:567
#: templates/js/translated/build.js:295 templates/js/translated/build.js:495
#: templates/js/translated/build.js:689 templates/js/translated/build.js:699
#: templates/js/translated/build.js:1075 templates/js/translated/build.js:1422
@@ -611,23 +612,23 @@ msgstr ""
#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056
#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859
#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036
-#: templates/js/translated/order.js:2150 templates/js/translated/part.js:900
-#: templates/js/translated/part.js:1855 templates/js/translated/part.js:1978
-#: templates/js/translated/part.js:2056 templates/js/translated/stock.js:383
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:750
-#: templates/js/translated/stock.js:2519 templates/js/translated/stock.js:2621
+#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906
+#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985
+#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:391
+#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758
+#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2779
msgid "Quantity"
-msgstr ""
+msgstr "Antall"
#: build/forms.py:37
msgid "Enter quantity for build output"
-msgstr ""
+msgstr "Angi antall for build utgang"
-#: build/forms.py:41 order/serializers.py:814 stock/forms.py:81
-#: stock/serializers.py:314 templates/js/translated/stock.js:230
-#: templates/js/translated/stock.js:384
+#: build/forms.py:41 order/serializers.py:820 stock/forms.py:81
+#: stock/serializers.py:314 templates/js/translated/stock.js:238
+#: templates/js/translated/stock.js:392
msgid "Serial Numbers"
-msgstr ""
+msgstr "Serienummer"
#: build/forms.py:43
msgid "Enter serial numbers for build outputs"
@@ -649,18 +650,18 @@ msgstr ""
msgid "Confirm build cancellation"
msgstr ""
-#: build/models.py:133
+#: build/models.py:135
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:139 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:457
+#: templates/js/translated/build.js:457 templates/js/translated/stock.js:2290
msgid "Build Order"
msgstr ""
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:140 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:92
#: order/templates/order/so_sidebar.html:13
@@ -670,40 +671,40 @@ msgstr ""
msgid "Build Orders"
msgstr ""
-#: build/models.py:198
+#: build/models.py:200
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:210 order/models.py:536
-#: order/models.py:803 part/models.py:2638
+#: build/models.py:201 order/models.py:213 order/models.py:541
+#: order/models.py:812 part/models.py:2645
#: 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/translated/bom.js:547 templates/js/translated/build.js:1179
+#: templates/js/translated/bom.js:559 templates/js/translated/build.js:1179
#: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144
msgid "Reference"
msgstr ""
-#: build/models.py:210
+#: build/models.py:212
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:219 build/templates/build/build_base.html:164
+#: build/models.py:221 build/templates/build/build_base.html:164
#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:222
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:225 build/templates/build/build_base.html:77
+#: build/models.py:227 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
-#: order/models.py:856 order/models.py:930
-#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
-#: part/models.py:2204 part/models.py:2220 part/models.py:2239
-#: part/models.py:2256 part/models.py:2358 part/models.py:2480
-#: part/models.py:2613 part/models.py:2920 part/serializers.py:658
+#: order/models.py:876 order/models.py:950
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359
+#: part/models.py:2211 part/models.py:2227 part/models.py:2246
+#: part/models.py:2263 part/models.py:2365 part/models.py:2487
+#: part/models.py:2620 part/models.py:2927 part/serializers.py:658
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -713,205 +714,205 @@ msgstr ""
#: templates/InvenTree/search.html:80
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
-#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:326
-#: templates/js/translated/bom.js:505 templates/js/translated/build.js:680
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:338
+#: templates/js/translated/bom.js:517 templates/js/translated/build.js:680
#: templates/js/translated/build.js:1048 templates/js/translated/build.js:1419
#: templates/js/translated/build.js:1687 templates/js/translated/company.js:492
#: templates/js/translated/company.js:749 templates/js/translated/order.js:84
#: templates/js/translated/order.js:586 templates/js/translated/order.js:1004
#: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933
-#: templates/js/translated/order.js:2128 templates/js/translated/part.js:977
-#: templates/js/translated/part.js:1058 templates/js/translated/part.js:1225
-#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:719
-#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1526
-#: templates/js/translated/stock.js:2609
+#: templates/js/translated/order.js:2128 templates/js/translated/part.js:984
+#: templates/js/translated/part.js:1065 templates/js/translated/part.js:1232
+#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727
+#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1534
+#: templates/js/translated/stock.js:2767
msgid "Part"
msgstr ""
-#: build/models.py:233
+#: build/models.py:235
msgid "Select part to build"
msgstr ""
-#: build/models.py:238
+#: build/models.py:240
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:242
+#: build/models.py:244
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 templates/js/translated/build.js:1407
+#: build/models.py:249 templates/js/translated/build.js:1407
#: templates/js/translated/order.js:1564
msgid "Source Location"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:256
+#: build/models.py:258
msgid "Destination Location"
msgstr ""
-#: build/models.py:260
+#: build/models.py:262
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:264
+#: build/models.py:266
msgid "Build Quantity"
msgstr ""
-#: build/models.py:267
+#: build/models.py:269
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:271
-msgid "Completed items"
-msgstr ""
-
#: build/models.py:273
+msgid "Completed items"
+msgstr "Fullførte elementer"
+
+#: build/models.py:275
msgid "Number of stock items which have been completed"
-msgstr ""
+msgstr "Antall lagervarer som er fullført"
-#: build/models.py:277 part/templates/part/part_base.html:234
+#: build/models.py:279 part/templates/part/part_base.html:234
msgid "Build Status"
-msgstr ""
+msgstr "Byggstatus"
-#: build/models.py:281
+#: build/models.py:283
msgid "Build status code"
-msgstr ""
+msgstr "Byggstatuskode"
-#: build/models.py:285 stock/models.py:531
+#: build/models.py:287 stock/models.py:533
msgid "Batch Code"
-msgstr ""
+msgstr "Batch kode"
-#: build/models.py:289
+#: build/models.py:291
msgid "Batch code for this build output"
-msgstr ""
+msgstr "Batch kode for denne build output"
-#: build/models.py:292 order/models.py:126 part/models.py:967
+#: build/models.py:294 order/models.py:129 part/models.py:969
#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271
msgid "Creation Date"
-msgstr ""
+msgstr "Opprettelsesdato"
-#: build/models.py:296 order/models.py:558
+#: build/models.py:298 order/models.py:563
msgid "Target completion date"
-msgstr ""
+msgstr "Forventet sluttdato"
-#: build/models.py:297
+#: build/models.py:299
msgid "Target date for build completion. Build will be overdue after this date."
-msgstr ""
+msgstr "Forventet dato for ferdigstillelse. Build er forvalt etter denne datoen."
-#: build/models.py:300 order/models.py:252
+#: build/models.py:302 order/models.py:255
#: templates/js/translated/build.js:1758
msgid "Completion Date"
-msgstr ""
+msgstr "Fullført dato"
-#: build/models.py:306
+#: build/models.py:308
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:1729
+#: build/models.py:316 templates/js/translated/build.js:1729
msgid "Issued by"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:323 build/templates/build/build_base.html:185
-#: build/templates/build/detail.html:116 order/models.py:140
+#: build/models.py:325 build/templates/build/build_base.html:185
+#: build/templates/build/detail.html:116 order/models.py:143
#: order/templates/order/order_base.html:170
-#: order/templates/order/sales_order_base.html:182 part/models.py:971
+#: order/templates/order/sales_order_base.html:182 part/models.py:973
#: report/templates/report/inventree_build_order_base.html:159
#: templates/js/translated/build.js:1741 templates/js/translated/order.js:864
msgid "Responsible"
msgstr ""
-#: build/models.py:324
+#: build/models.py:326
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:329 build/templates/build/detail.html:102
+#: build/models.py:331 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:525
+#: part/templates/part/part_base.html:354 stock/models.py:527
#: stock/templates/stock/item_base.html:373
msgid "External Link"
msgstr ""
-#: build/models.py:334 build/serializers.py:201
+#: build/models.py:336 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
-#: order/models.py:144 order/models.py:805 order/models.py:1051
+#: order/models.py:147 order/models.py:814 order/models.py:1071
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:17 part/models.py:956
-#: part/templates/part/detail.html:120 part/templates/part/part_sidebar.html:50
+#: order/templates/order/so_sidebar.html:17 part/models.py:958
+#: part/templates/part/detail.html:137 part/templates/part/part_sidebar.html:54
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:597
-#: stock/models.py:1867 stock/models.py:1973 stock/serializers.py:332
-#: stock/serializers.py:639 stock/serializers.py:737 stock/serializers.py:869
-#: stock/templates/stock/stock_sidebar.html:21
-#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:711
+#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:599
+#: stock/models.py:1895 stock/models.py:2001 stock/serializers.py:332
+#: stock/serializers.py:640 stock/serializers.py:738 stock/serializers.py:870
+#: stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:723
#: templates/js/translated/company.js:845 templates/js/translated/order.js:1149
#: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280
-#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1795
+#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1803
msgid "Notes"
msgstr ""
-#: build/models.py:335
+#: build/models.py:337
msgid "Extra build notes"
msgstr ""
-#: build/models.py:710
+#: build/models.py:717
msgid "No build output specified"
msgstr ""
-#: build/models.py:713
+#: build/models.py:720
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:716
+#: build/models.py:723
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1108
+#: build/models.py:1115
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1117
+#: build/models.py:1124
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1127
+#: build/models.py:1134
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1133 order/models.py:1167
+#: build/models.py:1140 order/models.py:1189
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1139
+#: build/models.py:1146
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1196
+#: build/models.py:1203
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1256 stock/templates/stock/item_base.html:345
+#: build/models.py:1263 stock/templates/stock/item_base.html:345
#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1660
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1257
+#: build/models.py:1264
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1273 build/serializers.py:388 order/serializers.py:690
-#: order/serializers.py:708 stock/serializers.py:577 stock/serializers.py:695
+#: build/models.py:1280 build/serializers.py:388 order/serializers.py:696
+#: order/serializers.py:714 stock/serializers.py:578 stock/serializers.py:696
#: stock/templates/stock/item_base.html:9
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:367
@@ -920,24 +921,24 @@ msgstr ""
#: templates/js/translated/order.js:85 templates/js/translated/order.js:1577
#: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837
#: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030
-#: templates/js/translated/stock.js:555 templates/js/translated/stock.js:720
-#: templates/js/translated/stock.js:2470
+#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728
+#: templates/js/translated/stock.js:2628
msgid "Stock Item"
msgstr ""
-#: build/models.py:1274
+#: build/models.py:1281
msgid "Source stock item"
msgstr ""
-#: build/models.py:1287
+#: build/models.py:1294
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1295
+#: build/models.py:1302
msgid "Install into"
msgstr ""
-#: build/models.py:1296
+#: build/models.py:1303
msgid "Destination stock item"
msgstr ""
@@ -962,16 +963,16 @@ msgid "This build output is not fully allocated"
msgstr ""
#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294
-#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:730
-#: stock/serializers.py:971 stock/templates/stock/item_base.html:313
+#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:731
+#: stock/serializers.py:972 stock/templates/stock/item_base.html:313
#: templates/js/translated/barcode.js:384
#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:480
#: templates/js/translated/build.js:1087 templates/js/translated/order.js:508
#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955
#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044
-#: templates/js/translated/part.js:179 templates/js/translated/stock.js:556
-#: templates/js/translated/stock.js:721 templates/js/translated/stock.js:928
-#: templates/js/translated/stock.js:1676 templates/js/translated/stock.js:2411
+#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564
+#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936
+#: templates/js/translated/stock.js:1684 templates/js/translated/stock.js:2569
msgid "Location"
msgstr ""
@@ -980,12 +981,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:137
-#: build/templates/build/detail.html:63 order/models.py:552
+#: build/templates/build/detail.html:63 order/models.py:557
#: order/serializers.py:247 stock/templates/stock/item_base.html:187
#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1716
#: templates/js/translated/order.js:591 templates/js/translated/order.js:840
-#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1651
-#: templates/js/translated/stock.js:2488 templates/js/translated/stock.js:2637
+#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:2646 templates/js/translated/stock.js:2795
msgid "Status"
msgstr ""
@@ -1021,8 +1022,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:313 build/serializers.py:362 part/models.py:2753
-#: part/models.py:2912
+#: build/serializers.py:313 build/serializers.py:362 part/models.py:2760
+#: part/models.py:2919
msgid "BOM Item"
msgstr ""
@@ -1038,16 +1039,16 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:394 stock/serializers.py:584
+#: build/serializers.py:394 stock/serializers.py:585
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:408 order/models.py:277 order/serializers.py:240
-#: stock/models.py:365 stock/models.py:1077 stock/serializers.py:305
+#: build/serializers.py:408 order/models.py:280 order/serializers.py:240
+#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:450 order/serializers.py:741
+#: build/serializers.py:450 order/serializers.py:747
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1060,7 +1061,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:491 order/serializers.py:984
+#: build/serializers.py:491 order/serializers.py:990
msgid "Allocation items must be provided"
msgstr ""
@@ -1164,13 +1165,13 @@ msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:171
-#: build/templates/build/detail.html:95 order/models.py:927
-#: order/models.py:1023 order/templates/order/sales_order_base.html:9
+#: build/templates/build/detail.html:95 order/models.py:947
+#: order/models.py:1043 order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/order.js:1218
+#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2304
msgid "Sales Order"
msgstr ""
@@ -1224,7 +1225,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:50 order/models.py:878 stock/forms.py:136
+#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:136
#: templates/js/translated/order.js:592 templates/js/translated/order.js:1138
msgid "Destination"
msgstr ""
@@ -1239,7 +1240,7 @@ msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:331
-#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2644
+#: templates/js/translated/stock.js:1673 templates/js/translated/stock.js:2802
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:238
msgid "Batch"
@@ -1343,9 +1344,9 @@ msgstr ""
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:107
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:196
-#: part/templates/part/part_sidebar.html:48 stock/templates/stock/item.html:95
-#: stock/templates/stock/stock_sidebar.html:19
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:213
+#: part/templates/part/part_sidebar.html:52 stock/templates/stock/item.html:112
+#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr ""
@@ -1360,8 +1361,8 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:108
#: order/templates/order/sales_order_detail.html:127
#: order/templates/order/sales_order_detail.html:186
-#: part/templates/part/detail.html:124 stock/templates/stock/item.html:115
-#: stock/templates/stock/item.html:205
+#: part/templates/part/detail.html:141 stock/templates/stock/item.html:132
+#: stock/templates/stock/item.html:235
msgid "Edit Notes"
msgstr ""
@@ -1373,7 +1374,7 @@ msgstr ""
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:303
+#: build/templates/build/index.html:18 part/templates/part/detail.html:320
msgid "New Build Order"
msgstr ""
@@ -1453,23 +1454,23 @@ msgstr ""
msgid "Delete Build Order"
msgstr ""
-#: common/files.py:67
+#: common/files.py:65
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
-#: common/files.py:69
+#: common/files.py:67
msgid "Error reading file (invalid encoding)"
msgstr ""
-#: common/files.py:74
+#: common/files.py:72
msgid "Error reading file (invalid format)"
msgstr ""
-#: common/files.py:76
+#: common/files.py:74
msgid "Error reading file (incorrect dimension)"
msgstr ""
-#: common/files.py:78
+#: common/files.py:76
msgid "Error reading file (data could be corrupted)"
msgstr ""
@@ -1490,740 +1491,828 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:344 common/models.py:998 common/models.py:1206
-msgid "Settings key (must be unique - case insensitive"
+#: common/models.py:352
+msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:346
+#: common/models.py:354
msgid "Settings value"
msgstr ""
-#: common/models.py:380
+#: common/models.py:388
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:400
+#: common/models.py:408
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:411
+#: common/models.py:419
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:434
+#: common/models.py:442
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:553
+#: common/models.py:561
msgid "No group"
msgstr ""
-#: common/models.py:595
+#: common/models.py:603
msgid "Restart required"
msgstr ""
-#: common/models.py:596
+#: common/models.py:604
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:603
+#: common/models.py:611
msgid "InvenTree Instance Name"
msgstr ""
-#: common/models.py:605
+#: common/models.py:613
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:609
+#: common/models.py:617
msgid "Use instance name"
msgstr ""
-#: common/models.py:610
+#: common/models.py:618
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:616 company/models.py:100 company/models.py:101
+#: common/models.py:624 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr ""
-#: common/models.py:617
+#: common/models.py:625
msgid "Internal company name"
msgstr ""
-#: common/models.py:622
+#: common/models.py:630
msgid "Base URL"
msgstr ""
-#: common/models.py:623
+#: common/models.py:631
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:629
+#: common/models.py:637
msgid "Default Currency"
msgstr ""
-#: common/models.py:630
+#: common/models.py:638
msgid "Default currency"
msgstr ""
-#: common/models.py:636
+#: common/models.py:644
msgid "Download from URL"
msgstr ""
-#: common/models.py:637
+#: common/models.py:645
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:643 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:651 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
-#: common/models.py:644
+#: common/models.py:652
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:650
+#: common/models.py:658
msgid "IPN Regex"
msgstr ""
-#: common/models.py:651
+#: common/models.py:659
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:655
+#: common/models.py:663
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:656
+#: common/models.py:664
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:662
+#: common/models.py:670
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:663
+#: common/models.py:671
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:669
+#: common/models.py:677
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:670
+#: common/models.py:678
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:676
+#: common/models.py:684
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:677
+#: common/models.py:685
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:683
+#: common/models.py:691
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:684
+#: common/models.py:692
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:690
+#: common/models.py:698
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:691
+#: common/models.py:699
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:697 part/models.py:2482 report/models.py:187
+#: common/models.py:705 part/models.py:2489 report/models.py:187
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:422
msgid "Template"
msgstr ""
-#: common/models.py:698
+#: common/models.py:706
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:704 part/models.py:919 templates/js/translated/bom.js:1068
+#: common/models.py:712 part/models.py:921 templates/js/translated/bom.js:1082
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:434
msgid "Assembly"
msgstr ""
-#: common/models.py:705
+#: common/models.py:713
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:711 part/models.py:925
+#: common/models.py:719 part/models.py:927
#: templates/js/translated/table_filters.js:438
msgid "Component"
msgstr ""
-#: common/models.py:712
+#: common/models.py:720
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:718 part/models.py:936
+#: common/models.py:726 part/models.py:938
msgid "Purchaseable"
msgstr ""
-#: common/models.py:719
+#: common/models.py:727
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:725 part/models.py:941
+#: common/models.py:733 part/models.py:943
#: templates/js/translated/table_filters.js:446
msgid "Salable"
msgstr ""
-#: common/models.py:726
+#: common/models.py:734
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:732 part/models.py:931
+#: common/models.py:740 part/models.py:933
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
#: templates/js/translated/table_filters.js:450
msgid "Trackable"
msgstr ""
-#: common/models.py:733
+#: common/models.py:741
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:739 part/models.py:951
+#: common/models.py:747 part/models.py:953
#: part/templates/part/part_base.html:147
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr ""
-#: common/models.py:740
+#: common/models.py:748
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:746
+#: common/models.py:754
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:747
+#: common/models.py:755
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:753
+#: common/models.py:761
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:754
+#: common/models.py:762
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:765
+#: common/models.py:773
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:766
+#: common/models.py:774
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:772
+#: common/models.py:780
msgid "Show related parts"
msgstr ""
-#: common/models.py:773
+#: common/models.py:781
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:779
+#: common/models.py:787
msgid "Create initial stock"
msgstr ""
-#: common/models.py:780
+#: common/models.py:788
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:786
+#: common/models.py:794
msgid "Internal Prices"
msgstr ""
-#: common/models.py:787
+#: common/models.py:795
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:793
+#: common/models.py:801
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:794
+#: common/models.py:802
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:800
+#: common/models.py:808
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:801
+#: common/models.py:809
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:808
+#: common/models.py:816
msgid "Enable Reports"
msgstr ""
-#: common/models.py:809
+#: common/models.py:817
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:815 templates/stats.html:25
+#: common/models.py:823 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:816
+#: common/models.py:824
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:822
+#: common/models.py:830
msgid "Page Size"
msgstr ""
-#: common/models.py:823
+#: common/models.py:831
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:833
+#: common/models.py:841
msgid "Test Reports"
msgstr ""
-#: common/models.py:834
+#: common/models.py:842
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:840
+#: common/models.py:848
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:841
+#: common/models.py:849
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:847
+#: common/models.py:855
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:848
+#: common/models.py:856
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:854
+#: common/models.py:862
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:855
+#: common/models.py:863
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:857
+#: common/models.py:865
msgid "days"
msgstr ""
-#: common/models.py:862
+#: common/models.py:870
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:863
+#: common/models.py:871
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:869
+#: common/models.py:877
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:870
+#: common/models.py:878
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:876
-msgid "Group by Part"
-msgstr ""
-
-#: common/models.py:877
-msgid "Group stock items by part reference in table views"
-msgstr ""
-
-#: common/models.py:883
+#: common/models.py:884
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:884
+#: common/models.py:885
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:889
+#: common/models.py:890
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:890
+#: common/models.py:891
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:894
+#: common/models.py:895
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:895
+#: common/models.py:896
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:900
+#: common/models.py:901
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:901
+#: common/models.py:902
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:907
+#: common/models.py:908
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:908
+#: common/models.py:909
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:913
+#: common/models.py:914
msgid "Enable registration"
msgstr ""
-#: common/models.py:914
+#: common/models.py:915
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:919
+#: common/models.py:920
msgid "Enable SSO"
msgstr ""
-#: common/models.py:920
+#: common/models.py:921
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:925
+#: common/models.py:926
msgid "Email required"
msgstr ""
-#: common/models.py:926
+#: common/models.py:927
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:931
+#: common/models.py:932
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:932
+#: common/models.py:933
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:937
+#: common/models.py:938
msgid "Mail twice"
msgstr ""
-#: common/models.py:938
+#: common/models.py:939
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:943
+#: common/models.py:944
msgid "Password twice"
msgstr ""
-#: common/models.py:944
+#: common/models.py:945
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:949
+#: common/models.py:950
msgid "Group on signup"
msgstr ""
-#: common/models.py:950
+#: common/models.py:951
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:955
+#: common/models.py:956
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:956
+#: common/models.py:957
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:961
+#: common/models.py:964
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:962
+#: common/models.py:965
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:968
+#: common/models.py:971
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:969
+#: common/models.py:972
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:975
+#: common/models.py:978
msgid "Enable app integration"
msgstr ""
-#: common/models.py:976
+#: common/models.py:979
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:982
+#: common/models.py:985
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:983
+#: common/models.py:986
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1029
+#: common/models.py:992
+msgid "Enable event integration"
+msgstr ""
+
+#: common/models.py:993
+msgid "Enable plugins to respond to internal events"
+msgstr ""
+
+#: common/models.py:1008 common/models.py:1216
+msgid "Settings key (must be unique - case insensitive"
+msgstr ""
+
+#: common/models.py:1039
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1030
+#: common/models.py:1040
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1035
+#: common/models.py:1045
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1036
+#: common/models.py:1046
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1041
+#: common/models.py:1051
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1042
+#: common/models.py:1052
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1047
+#: common/models.py:1057
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1048
+#: common/models.py:1058
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1054
+#: common/models.py:1064
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1055
+#: common/models.py:1065
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1070
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1061
+#: common/models.py:1071
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1066
+#: common/models.py:1076
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1067
+#: common/models.py:1077
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1072
+#: common/models.py:1082
msgid "Show low stock"
msgstr ""
-#: common/models.py:1073
+#: common/models.py:1083
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1078
+#: common/models.py:1088
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1079
+#: common/models.py:1089
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1084
+#: common/models.py:1094
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1085
+#: common/models.py:1095
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1090
+#: common/models.py:1100
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1091
+#: common/models.py:1101
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1096
+#: common/models.py:1106
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1097
+#: common/models.py:1107
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1102
+#: common/models.py:1112
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1103
+#: common/models.py:1113
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1108
+#: common/models.py:1118
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1109
+#: common/models.py:1119
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1114
+#: common/models.py:1124
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1115
+#: common/models.py:1125
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1120
+#: common/models.py:1130
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1121
+#: common/models.py:1131
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1136
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1127
+#: common/models.py:1137
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1142
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1143
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1149
msgid "Inline label display"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1150
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1156
msgid "Inline report display"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1157
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1163
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1164
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1170
msgid "Search Show Stock"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1171
msgid "Display stock levels in search preview window"
msgstr ""
-#: common/models.py:1167
+#: common/models.py:1177
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1178
msgid "Hide inactive parts in search preview window"
msgstr ""
-#: common/models.py:1174
+#: common/models.py:1184
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1175
+#: common/models.py:1185
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1181
+#: common/models.py:1191
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1182
+#: common/models.py:1192
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1188
+#: common/models.py:1198
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1199
msgid "InvenTree navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1254 company/forms.py:43
+#: common/models.py:1264 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1261 company/serializers.py:264
+#: common/models.py:1271 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:909 templates/js/translated/part.js:1860
+#: templates/js/translated/part.js:915 templates/js/translated/part.js:1867
msgid "Price"
msgstr ""
-#: common/models.py:1262
+#: common/models.py:1272
msgid "Unit price at specified quantity"
msgstr ""
+#: common/models.py:1429 common/models.py:1568
+msgid "Endpoint"
+msgstr ""
+
+#: common/models.py:1430
+msgid "Endpoint at which this webhook is received"
+msgstr ""
+
+#: common/models.py:1439
+msgid "Name for this webhook"
+msgstr ""
+
+#: common/models.py:1444 part/models.py:948 plugin/models.py:46
+#: templates/js/translated/table_filters.js:34
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:295
+#: templates/js/translated/table_filters.js:417
+msgid "Active"
+msgstr ""
+
+#: common/models.py:1445
+msgid "Is this webhook active"
+msgstr ""
+
+#: common/models.py:1459
+msgid "Token"
+msgstr ""
+
+#: common/models.py:1460
+msgid "Token for access"
+msgstr ""
+
+#: common/models.py:1467
+msgid "Secret"
+msgstr ""
+
+#: common/models.py:1468
+msgid "Shared secret for HMAC"
+msgstr ""
+
+#: common/models.py:1535
+msgid "Message ID"
+msgstr ""
+
+#: common/models.py:1536
+msgid "Unique identifier for this message"
+msgstr ""
+
+#: common/models.py:1544
+msgid "Host"
+msgstr ""
+
+#: common/models.py:1545
+msgid "Host from which this message was received"
+msgstr ""
+
+#: common/models.py:1552
+msgid "Header"
+msgstr ""
+
+#: common/models.py:1553
+msgid "Header of this message"
+msgstr ""
+
+#: common/models.py:1559
+msgid "Body"
+msgstr ""
+
+#: common/models.py:1560
+msgid "Body of this message"
+msgstr ""
+
+#: common/models.py:1569
+msgid "Endpoint on which this message was received"
+msgstr ""
+
+#: common/models.py:1574
+msgid "Worked on"
+msgstr ""
+
+#: common/models.py:1575
+msgid "Was the work on this message finished?"
+msgstr ""
+
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
#: part/templates/part/bom_upload/upload_file.html:52
-#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
-#: part/views.py:764
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:213
+#: part/views.py:773
msgid "Upload File"
msgstr ""
#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
-#: part/views.py:765
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:214
+#: part/views.py:774
msgid "Match Fields"
msgstr ""
@@ -2315,7 +2404,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:838
+#: company/models.py:139 part/models.py:840
msgid "Image"
msgstr ""
@@ -2352,8 +2441,8 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:469
-#: stock/templates/stock/item_base.html:142
+#: company/models.py:320 company/models.py:535 stock/models.py:471
+#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:328
msgid "Base Part"
msgstr ""
@@ -2380,7 +2469,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:818 templates/js/translated/order.js:1038
-#: templates/js/translated/part.js:245 templates/js/translated/part.js:889
+#: templates/js/translated/part.js:245 templates/js/translated/part.js:895
msgid "MPN"
msgstr ""
@@ -2409,8 +2498,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1960 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:709 templates/js/translated/stock.js:1296
+#: stock/models.py:1988 templates/js/translated/company.js:647
+#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1304
msgid "Value"
msgstr ""
@@ -2418,10 +2507,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:913 part/models.py:2450
+#: company/models.py:429 part/models.py:915 part/models.py:2457
#: part/templates/part/part_base.html:288
-#: templates/InvenTree/settings/settings.html:284
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:715
+#: templates/InvenTree/settings/settings.html:287
+#: templates/js/translated/company.js:653 templates/js/translated/part.js:721
msgid "Units"
msgstr ""
@@ -2434,13 +2523,13 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:78
-#: company/templates/company/supplier_part.html:87 order/models.py:224
+#: company/templates/company/supplier_part.html:87 order/models.py:227
#: order/templates/order/order_base.html:112
-#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
-#: part/bom.py:247 stock/templates/stock/item_base.html:397
+#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237
+#: part/bom.py:265 stock/templates/stock/item_base.html:397
#: templates/js/translated/company.js:337
#: templates/js/translated/company.js:774 templates/js/translated/order.js:823
-#: templates/js/translated/part.js:215 templates/js/translated/part.js:857
+#: templates/js/translated/part.js:215 templates/js/translated/part.js:863
#: templates/js/translated/table_filters.js:393
msgid "Supplier"
msgstr ""
@@ -2450,8 +2539,8 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:1025
-#: templates/js/translated/part.js:226 templates/js/translated/part.js:875
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1025
+#: templates/js/translated/part.js:226 templates/js/translated/part.js:881
msgid "SKU"
msgstr ""
@@ -2472,22 +2561,22 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:119
-#: part/models.py:2641 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2648 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:580 part/models.py:1779
+#: company/models.py:580 part/models.py:1781
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1779
+#: company/models.py:580 part/models.py:1781
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:493 stock/templates/stock/item_base.html:338
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1791
+#: stock/models.py:495 stock/templates/stock/item_base.html:338
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1799
msgid "Packaging"
msgstr ""
@@ -2495,7 +2584,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1781
+#: company/models.py:584 part/models.py:1783
msgid "multiple"
msgstr ""
@@ -2554,12 +2643,12 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:83 order/models.py:547
-#: order/templates/order/sales_order_base.html:115 stock/models.py:512
-#: stock/models.py:513 stock/serializers.py:625
+#: company/templates/company/company_base.html:83 order/models.py:552
+#: order/templates/order/sales_order_base.html:115 stock/models.py:514
+#: stock/models.py:515 stock/serializers.py:626
#: stock/templates/stock/item_base.html:290
#: templates/js/translated/company.js:329 templates/js/translated/order.js:1240
-#: templates/js/translated/stock.js:2452
+#: templates/js/translated/stock.js:2610
#: templates/js/translated/table_filters.js:397
msgid "Customer"
msgstr ""
@@ -2590,7 +2679,7 @@ msgstr ""
#: company/templates/company/detail.html:20
#: company/templates/company/manufacturer_part.html:118
-#: part/templates/part/detail.html:336
+#: part/templates/part/detail.html:353
msgid "New Supplier Part"
msgstr ""
@@ -2598,8 +2687,8 @@ msgstr ""
#: company/templates/company/detail.html:79
#: company/templates/company/manufacturer_part.html:127
#: company/templates/company/manufacturer_part.html:156
-#: part/templates/part/category.html:171 part/templates/part/detail.html:345
-#: part/templates/part/detail.html:374
+#: part/templates/part/category.html:171 part/templates/part/detail.html:362
+#: part/templates/part/detail.html:391
msgid "Options"
msgstr ""
@@ -2627,7 +2716,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:364
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:381
msgid "New Manufacturer Part"
msgstr ""
@@ -2641,7 +2730,7 @@ msgstr ""
#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:68 part/templates/part/part_sidebar.html:33
+#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
@@ -2663,7 +2752,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:91 part/templates/part/part_sidebar.html:37
+#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:41
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
@@ -2691,13 +2780,13 @@ msgstr ""
#: company/templates/company/detail.html:384
#: company/templates/company/manufacturer_part.html:215
-#: part/templates/part/detail.html:418
+#: part/templates/part/detail.html:435
msgid "Delete Supplier Parts?"
msgstr ""
#: company/templates/company/detail.html:385
#: company/templates/company/manufacturer_part.html:216
-#: part/templates/part/detail.html:419
+#: part/templates/part/detail.html:436
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2714,7 +2803,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:34
#: company/templates/company/supplier_part.html:159
-#: part/templates/part/detail.html:71 part/templates/part/part_base.html:76
+#: part/templates/part/detail.html:88 part/templates/part/part_base.html:76
msgid "Order part"
msgstr ""
@@ -2735,34 +2824,34 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:114
#: company/templates/company/supplier_part.html:15 company/views.py:49
-#: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163
+#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:163
#: templates/InvenTree/search.html:188 templates/navbar.html:45
msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
-#: part/templates/part/detail.html:347
+#: part/templates/part/detail.html:364
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
#: company/templates/company/manufacturer_part.html:158
#: company/templates/company/manufacturer_part.html:254
-#: part/templates/part/detail.html:347 part/templates/part/detail.html:376
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:393
#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31
-#: users/models.py:210
+#: users/models.py:212
msgid "Delete"
msgstr ""
#: company/templates/company/manufacturer_part.html:143
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:17
-#: part/templates/part/detail.html:170 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:187 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:147
-#: part/templates/part/detail.html:175
+#: part/templates/part/detail.html:192
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
@@ -2773,7 +2862,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:191
-#: part/templates/part/detail.html:862
+#: part/templates/part/detail.html:892
msgid "Add Parameter"
msgstr ""
@@ -2802,9 +2891,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:477
+#: company/templates/company/supplier_part.html:24 stock/models.py:479
#: stock/templates/stock/item_base.html:402
-#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1748
+#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1756
msgid "Supplier Part"
msgstr ""
@@ -2830,7 +2919,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:167
-#: templates/js/translated/stock.js:360
+#: templates/js/translated/stock.js:368
msgid "New Stock Item"
msgstr ""
@@ -2840,7 +2929,7 @@ msgid "Supplier Part Orders"
msgstr ""
#: company/templates/company/supplier_part.html:160
-#: part/templates/part/detail.html:72
+#: part/templates/part/detail.html:89
msgid "Order Part"
msgstr ""
@@ -2851,7 +2940,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1619
+#: part/templates/part/prices.html:271 part/views.py:1628
msgid "Add Price Break"
msgstr ""
@@ -2859,11 +2948,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1681
+#: company/templates/company/supplier_part.html:224 part/views.py:1690
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1667
+#: company/templates/company/supplier_part.html:238 part/views.py:1676
msgid "Edit Price Break"
msgstr ""
@@ -2881,10 +2970,10 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:150
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/bom.js:328 templates/js/translated/part.js:489
-#: templates/js/translated/part.js:624 templates/js/translated/part.js:1118
-#: templates/js/translated/part.js:1279 templates/js/translated/stock.js:927
-#: templates/js/translated/stock.js:1580 templates/navbar.html:28
+#: templates/js/translated/bom.js:340 templates/js/translated/part.js:495
+#: templates/js/translated/part.js:630 templates/js/translated/part.js:1125
+#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:935
+#: templates/js/translated/stock.js:1588 templates/navbar.html:28
msgid "Stock"
msgstr ""
@@ -2907,8 +2996,8 @@ msgstr ""
#: stock/templates/stock/location.html:151
#: stock/templates/stock/location.html:163
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2351
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2509
+#: templates/stats.html:105 templates/stats.html:114 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2937,20 +3026,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:584
+#: company/views.py:129 part/views.py:593
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:616
+#: company/views.py:158 part/views.py:625
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:623
+#: company/views.py:165 part/views.py:632
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:632
+#: company/views.py:174 part/views.py:641
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3036,282 +3125,282 @@ msgstr ""
msgid "Cancel order"
msgstr ""
-#: order/models.py:122
+#: order/models.py:125
msgid "Order description"
msgstr ""
-#: order/models.py:124
+#: order/models.py:127
msgid "Link to external page"
msgstr ""
-#: order/models.py:132
+#: order/models.py:135
msgid "Created By"
msgstr ""
-#: order/models.py:139
+#: order/models.py:142
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:144
+#: order/models.py:147
msgid "Order notes"
msgstr ""
-#: order/models.py:211 order/models.py:537
+#: order/models.py:214 order/models.py:542
msgid "Order reference"
msgstr ""
-#: order/models.py:216 order/models.py:552
+#: order/models.py:219 order/models.py:557
msgid "Purchase order status"
msgstr ""
-#: order/models.py:225
+#: order/models.py:228
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:228 order/templates/order/order_base.html:118
+#: order/models.py:231 order/templates/order/order_base.html:118
#: templates/js/translated/order.js:832
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:228
+#: order/models.py:231
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:235
+#: order/models.py:238
msgid "received by"
msgstr ""
-#: order/models.py:240
+#: order/models.py:243
msgid "Issue Date"
msgstr ""
-#: order/models.py:241
+#: order/models.py:244
msgid "Date order was issued"
msgstr ""
-#: order/models.py:246
+#: order/models.py:249
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:247
+#: order/models.py:250
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:253
+#: order/models.py:256
msgid "Date order was completed"
msgstr ""
-#: order/models.py:282
+#: order/models.py:285
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:411
-msgid "Quantity must be an integer"
-msgstr ""
-
-#: order/models.py:415
+#: order/models.py:420
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:548
+#: order/models.py:553
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:554
+#: order/models.py:559
msgid "Customer Reference "
msgstr ""
-#: order/models.py:554
+#: order/models.py:559
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:559
+#: order/models.py:564
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:562 order/models.py:1028
+#: order/models.py:567 order/models.py:1048
#: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429
msgid "Shipment Date"
msgstr ""
-#: order/models.py:569
+#: order/models.py:574
msgid "shipped by"
msgstr ""
-#: order/models.py:635
+#: order/models.py:640
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:639
+#: order/models.py:644
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:642
+#: order/models.py:647
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:645
+#: order/models.py:650
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:797
+#: order/models.py:806
msgid "Item quantity"
msgstr ""
-#: order/models.py:803
+#: order/models.py:812
msgid "Line item reference"
msgstr ""
-#: order/models.py:805
+#: order/models.py:814
msgid "Line item notes"
msgstr ""
-#: order/models.py:835 order/models.py:926 order/models.py:1022
-#: templates/js/translated/order.js:1820
+#: order/models.py:842
+msgid "Supplier part must match supplier"
+msgstr ""
+
+#: order/models.py:855 order/models.py:946 order/models.py:1042
+#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2271
msgid "Order"
msgstr ""
-#: order/models.py:836 order/templates/order/order_base.html:9
+#: order/models.py:856 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:352
-#: templates/js/translated/order.js:801 templates/js/translated/part.js:832
-#: templates/js/translated/stock.js:1725 templates/js/translated/stock.js:2433
+#: templates/js/translated/order.js:801 templates/js/translated/part.js:838
+#: templates/js/translated/stock.js:1733 templates/js/translated/stock.js:2591
msgid "Purchase Order"
msgstr ""
-#: order/models.py:857
+#: order/models.py:877
msgid "Supplier part"
msgstr ""
-#: order/models.py:864 order/templates/order/order_base.html:163
+#: order/models.py:884 order/templates/order/order_base.html:163
#: templates/js/translated/order.js:589 templates/js/translated/order.js:1118
-#: templates/js/translated/part.js:904 templates/js/translated/part.js:930
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:937
#: templates/js/translated/table_filters.js:317
msgid "Received"
msgstr ""
-#: order/models.py:865
+#: order/models.py:885
msgid "Number of items received"
msgstr ""
-#: order/models.py:872 part/templates/part/prices.html:176 stock/models.py:606
+#: order/models.py:892 part/templates/part/prices.html:176 stock/models.py:608
#: stock/serializers.py:170 stock/templates/stock/item_base.html:359
-#: templates/js/translated/stock.js:1779
+#: templates/js/translated/stock.js:1787
msgid "Purchase Price"
msgstr ""
-#: order/models.py:873
+#: order/models.py:893
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:881
+#: order/models.py:901
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:936 part/templates/part/part_pricing.html:112
+#: order/models.py:956 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:937
+#: order/models.py:957
msgid "Unit sale price"
msgstr ""
-#: order/models.py:942
+#: order/models.py:962
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1029
+#: order/models.py:1049
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1036
+#: order/models.py:1056
msgid "Checked By"
msgstr ""
-#: order/models.py:1037
+#: order/models.py:1057
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1045
+#: order/models.py:1065
msgid "Shipment number"
msgstr ""
-#: order/models.py:1052
+#: order/models.py:1072
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1059
+#: order/models.py:1079
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1060
+#: order/models.py:1080
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1070
+#: order/models.py:1090
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1073
+#: order/models.py:1093
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1149 order/models.py:1151
+#: order/models.py:1171 order/models.py:1173
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1155
+#: order/models.py:1177
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1157
+#: order/models.py:1179
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1160
+#: order/models.py:1182
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1164
+#: order/models.py:1186
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:1170 order/serializers.py:734
+#: order/models.py:1192 order/serializers.py:740
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1173
+#: order/models.py:1195
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1174
+#: order/models.py:1196
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1182
+#: order/models.py:1204
msgid "Line"
msgstr ""
-#: order/models.py:1190 order/serializers.py:825 order/serializers.py:953
-#: templates/js/translated/model_renderers.js:251
+#: order/models.py:1212 order/serializers.py:831 order/serializers.py:959
+#: templates/js/translated/model_renderers.js:285
msgid "Shipment"
msgstr ""
-#: order/models.py:1191
+#: order/models.py:1213
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1203
+#: order/models.py:1225
msgid "Item"
msgstr ""
-#: order/models.py:1204
+#: order/models.py:1226
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1207
+#: order/models.py:1229
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3319,7 +3408,7 @@ msgstr ""
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:211 order/serializers.py:790
+#: order/serializers.py:211 order/serializers.py:796
msgid "Line Item"
msgstr ""
@@ -3355,39 +3444,39 @@ msgstr ""
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:581
+#: order/serializers.py:587
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:649
+#: order/serializers.py:655
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:699 order/serializers.py:802
+#: order/serializers.py:705 order/serializers.py:808
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:721
+#: order/serializers.py:727
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:815
+#: order/serializers.py:821
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:839 order/serializers.py:964
+#: order/serializers.py:845 order/serializers.py:970
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:842 order/serializers.py:967
+#: order/serializers.py:848 order/serializers.py:973
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:894
+#: order/serializers.py:900
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:904
+#: order/serializers.py:910
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3441,6 +3530,7 @@ msgstr ""
#: order/templates/order/order_base.html:94
#: order/templates/order/sales_order_base.html:89
+#: templates/js/translated/stock.js:2327
msgid "Order Status"
msgstr ""
@@ -3538,7 +3628,7 @@ msgstr ""
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/build.js:300 templates/js/translated/build.js:1311
#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488
-#: templates/js/translated/stock.js:593 templates/js/translated/stock.js:761
+#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769
msgid "Remove row"
msgstr ""
@@ -3729,7 +3819,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:48
-#: templates/js/translated/bom.js:720 templates/js/translated/build.js:1243
+#: templates/js/translated/bom.js:732 templates/js/translated/build.js:1243
msgid "Actions"
msgstr ""
@@ -3832,447 +3922,448 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:125 part/models.py:81 part/models.py:847
+#: part/bom.py:125 part/models.py:83 part/models.py:849
#: part/templates/part/category.html:108 part/templates/part/part_base.html:338
msgid "Default Location"
msgstr ""
-#: part/bom.py:126 part/templates/part/part_base.html:185
+#: part/bom.py:126 templates/email/low_stock_notification.html:17
+msgid "Total Stock"
+msgstr ""
+
+#: part/bom.py:127 part/templates/part/part_base.html:185
msgid "Available Stock"
msgstr ""
-#: part/forms.py:85
+#: part/bom.py:128 part/templates/part/part_base.html:203
+#: templates/js/translated/part.js:1301
+msgid "On Order"
+msgstr ""
+
+#: part/forms.py:84
msgid "Select part category"
msgstr ""
-#: part/forms.py:122
+#: part/forms.py:121
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:126
+#: part/forms.py:125
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:146
+#: part/forms.py:145
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:82
+#: part/models.py:84
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:85
+#: part/models.py:87
msgid "Default keywords"
msgstr ""
-#: part/models.py:85
+#: part/models.py:87
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:95 part/models.py:2526 part/templates/part/category.html:15
+#: part/models.py:97 part/models.py:2533 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:96 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/stats.html:84
+#: part/models.py:98 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/stats.html:96
#: users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:358 part/templates/part/cat_link.html:3
+#: part/models.py:360 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:17 part/templates/part/category.html:133
#: part/templates/part/category.html:153
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:37
-#: templates/js/translated/part.js:1656 templates/navbar.html:21
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+#: templates/js/translated/part.js:1663 templates/navbar.html:21
+#: templates/stats.html:92 templates/stats.html:101 users/models.py:41
msgid "Parts"
msgstr ""
-#: part/models.py:450
+#: part/models.py:452
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:500 part/models.py:512
+#: part/models.py:502 part/models.py:514
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:642
+#: part/models.py:644
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:646
+#: part/models.py:648
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:651
+#: part/models.py:653
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:746
+#: part/models.py:748
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:771
+#: part/models.py:773
msgid "Part name"
msgstr ""
-#: part/models.py:778
+#: part/models.py:780
msgid "Is Template"
msgstr ""
-#: part/models.py:779
+#: part/models.py:781
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:789
+#: part/models.py:791
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:790
+#: part/models.py:792
msgid "Variant Of"
msgstr ""
-#: part/models.py:796
+#: part/models.py:798
msgid "Part description"
msgstr ""
-#: part/models.py:801 part/templates/part/category.html:86
+#: part/models.py:803 part/templates/part/category.html:86
#: part/templates/part/part_base.html:302
msgid "Keywords"
msgstr ""
-#: part/models.py:802
+#: part/models.py:804
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:809 part/models.py:2276 part/models.py:2525
+#: part/models.py:811 part/models.py:2283 part/models.py:2532
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:183
-#: templates/js/translated/part.js:1261
+#: templates/InvenTree/settings/settings.html:186
+#: templates/js/translated/part.js:1268
msgid "Category"
msgstr ""
-#: part/models.py:810
+#: part/models.py:812
msgid "Part category"
msgstr ""
-#: part/models.py:815 part/templates/part/part_base.html:274
-#: templates/js/translated/part.js:612 templates/js/translated/part.js:1214
-#: templates/js/translated/stock.js:1552
+#: part/models.py:817 part/templates/part/part_base.html:274
+#: templates/js/translated/part.js:618 templates/js/translated/part.js:1221
+#: templates/js/translated/stock.js:1560
msgid "IPN"
msgstr ""
-#: part/models.py:816
+#: part/models.py:818
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:822
+#: part/models.py:824
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:823 part/templates/part/part_base.html:281
-#: report/models.py:200 templates/js/translated/part.js:616
+#: part/models.py:825 part/templates/part/part_base.html:281
+#: report/models.py:200 templates/js/translated/part.js:622
msgid "Revision"
msgstr ""
-#: part/models.py:845
+#: part/models.py:847
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:892 part/templates/part/part_base.html:347
+#: part/models.py:894 part/templates/part/part_base.html:347
msgid "Default Supplier"
msgstr ""
-#: part/models.py:893
+#: part/models.py:895
msgid "Default supplier part"
msgstr ""
-#: part/models.py:900
+#: part/models.py:902
msgid "Default Expiry"
msgstr ""
-#: part/models.py:901
+#: part/models.py:903
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:906 part/templates/part/part_base.html:196
+#: part/models.py:908 part/templates/part/part_base.html:196
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:907
+#: part/models.py:909
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:914
+#: part/models.py:916
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:920
+#: part/models.py:922
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:926
+#: part/models.py:928
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:932
+#: part/models.py:934
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:937
+#: part/models.py:939
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:942
+#: part/models.py:944
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:946 plugin/models.py:46
-#: templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:96
-#: templates/js/translated/table_filters.js:295
-#: templates/js/translated/table_filters.js:417
-msgid "Active"
-msgstr ""
-
-#: part/models.py:947
+#: part/models.py:949
msgid "Is this part active?"
msgstr ""
-#: part/models.py:952
+#: part/models.py:954
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:957
+#: part/models.py:959
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:960
+#: part/models.py:962
msgid "BOM checksum"
msgstr ""
-#: part/models.py:960
+#: part/models.py:962
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:963
+#: part/models.py:965
msgid "BOM checked by"
msgstr ""
-#: part/models.py:965
+#: part/models.py:967
msgid "BOM checked date"
msgstr ""
-#: part/models.py:969
+#: part/models.py:971
msgid "Creation User"
msgstr ""
-#: part/models.py:1781
+#: part/models.py:1783
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2326
+#: part/models.py:2333
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2343
+#: part/models.py:2350
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2363 templates/js/translated/part.js:1707
-#: templates/js/translated/stock.js:1276
+#: part/models.py:2370 templates/js/translated/part.js:1714
+#: templates/js/translated/stock.js:1284
msgid "Test Name"
msgstr ""
-#: part/models.py:2364
+#: part/models.py:2371
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2376
msgid "Test Description"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2377
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2375 templates/js/translated/part.js:1716
+#: part/models.py:2382 templates/js/translated/part.js:1723
#: templates/js/translated/table_filters.js:281
msgid "Required"
msgstr ""
-#: part/models.py:2376
+#: part/models.py:2383
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2381 templates/js/translated/part.js:1724
+#: part/models.py:2388 templates/js/translated/part.js:1731
msgid "Requires Value"
msgstr ""
-#: part/models.py:2382
+#: part/models.py:2389
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2387 templates/js/translated/part.js:1731
+#: part/models.py:2394 templates/js/translated/part.js:1738
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2388
+#: part/models.py:2395
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2399
+#: part/models.py:2406
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2435
+#: part/models.py:2442
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2443
+#: part/models.py:2450
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2450
+#: part/models.py:2457
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2480
+#: part/models.py:2487
msgid "Parent Part"
msgstr ""
-#: part/models.py:2482 part/models.py:2531 part/models.py:2532
-#: templates/InvenTree/settings/settings.html:178
+#: part/models.py:2489 part/models.py:2538 part/models.py:2539
+#: templates/InvenTree/settings/settings.html:181
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2484
+#: part/models.py:2491
msgid "Data"
msgstr ""
-#: part/models.py:2484
+#: part/models.py:2491
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2536 templates/InvenTree/settings/settings.html:187
+#: part/models.py:2543 templates/InvenTree/settings/settings.html:190
msgid "Default Value"
msgstr ""
-#: part/models.py:2537
+#: part/models.py:2544
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2614
+#: part/models.py:2621
msgid "Select parent part"
msgstr ""
-#: part/models.py:2622
+#: part/models.py:2629
msgid "Sub part"
msgstr ""
-#: part/models.py:2623
+#: part/models.py:2630
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2629
+#: part/models.py:2636
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2631 templates/js/translated/bom.js:566
-#: templates/js/translated/bom.js:640
+#: part/models.py:2638 templates/js/translated/bom.js:578
+#: templates/js/translated/bom.js:652
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2638
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2634
+#: part/models.py:2641
msgid "Overage"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2642
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2638
+#: part/models.py:2645
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2641
+#: part/models.py:2648
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2643
+#: part/models.py:2650
msgid "Checksum"
msgstr ""
-#: part/models.py:2643
+#: part/models.py:2650
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2647 templates/js/translated/bom.js:657
+#: part/models.py:2654 templates/js/translated/bom.js:669
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2648
+#: part/models.py:2655
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2653 templates/js/translated/bom.js:649
+#: part/models.py:2660 templates/js/translated/bom.js:661
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2654
+#: part/models.py:2661
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2739 stock/models.py:355
+#: part/models.py:2746 stock/models.py:357
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2748 part/models.py:2750
+#: part/models.py:2755 part/models.py:2757
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2879
+#: part/models.py:2886
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2908
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2920
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2928
msgid "Substitute part"
msgstr ""
-#: part/models.py:2932
+#: part/models.py:2939
msgid "Part 1"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2943
msgid "Part 2"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2943
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2968
+#: part/models.py:2975
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4327,7 +4418,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:253
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:270
msgid "BOM actions"
msgstr ""
@@ -4499,7 +4590,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:348
msgid "Duplicate Part"
msgstr ""
@@ -4533,145 +4624,149 @@ msgid "Showing stock for all variants of %(full_name)s"
msgstr ""
#: part/templates/part/detail.html:43
+msgid "Part Stock Allocations"
+msgstr ""
+
+#: part/templates/part/detail.html:60
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:48
+#: part/templates/part/detail.html:65
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:105
+#: part/templates/part/detail.html:122
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:142
+#: part/templates/part/detail.html:159
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:146
+#: part/templates/part/detail.html:163
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:147
+#: part/templates/part/detail.html:164
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:174
+#: part/templates/part/detail.html:191
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:45
+#: part/templates/part/detail.html:228 part/templates/part/part_sidebar.html:49
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:215 part/templates/part/detail.html:216
+#: part/templates/part/detail.html:232 part/templates/part/detail.html:233
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:236 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:253 part/templates/part/part_sidebar.html:17
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:241
+#: part/templates/part/detail.html:258
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:245 templates/js/translated/bom.js:70
+#: part/templates/part/detail.html:262 templates/js/translated/bom.js:70
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:247
+#: part/templates/part/detail.html:264
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:257
+#: part/templates/part/detail.html:274
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:259 templates/js/translated/part.js:272
+#: part/templates/part/detail.html:276 templates/js/translated/part.js:272
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:278
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:266
+#: part/templates/part/detail.html:283
msgid "New BOM Item"
msgstr ""
-#: part/templates/part/detail.html:267
+#: part/templates/part/detail.html:284
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:280
+#: part/templates/part/detail.html:297
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:297
+#: part/templates/part/detail.html:314
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:322
+#: part/templates/part/detail.html:339
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:332
+#: part/templates/part/detail.html:349
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:360
+#: part/templates/part/detail.html:377
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:393
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:558
+#: part/templates/part/detail.html:575
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:559
+#: part/templates/part/detail.html:576
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:608
+#: part/templates/part/detail.html:625
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:652
+#: part/templates/part/detail.html:682
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:660
+#: part/templates/part/detail.html:690
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:755
+#: part/templates/part/detail.html:785
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:812
+#: part/templates/part/detail.html:842
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:925
+#: part/templates/part/detail.html:955
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:937
+#: part/templates/part/detail.html:967
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:949
+#: part/templates/part/detail.html:979
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1038
+#: part/templates/part/detail.html:1068
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4786,7 +4881,7 @@ msgstr ""
#: templates/js/translated/company.js:508
#: templates/js/translated/company.js:765
#: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:527 templates/js/translated/part.js:604
+#: templates/js/translated/part.js:533 templates/js/translated/part.js:610
msgid "Inactive"
msgstr ""
@@ -4805,10 +4900,6 @@ msgstr ""
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1294
-msgid "On Order"
-msgstr ""
-
#: part/templates/part/part_base.html:210 templates/InvenTree/index.html:178
msgid "Required for Build Orders"
msgstr ""
@@ -4821,12 +4912,12 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:678
+#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:690
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1125
-#: templates/js/translated/part.js:1298
+#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1132
+#: templates/js/translated/part.js:1305
msgid "Building"
msgstr ""
@@ -4878,7 +4969,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:632
+#: templates/js/translated/bom.js:644
msgid "No supplier pricing available"
msgstr ""
@@ -4920,7 +5011,12 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/templates/part/part_sidebar.html:41
+#: part/templates/part/part_sidebar.html:31
+#: stock/templates/stock/stock_sidebar.html:8
+msgid "Allocations"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:45
msgid "Test Templates"
msgstr ""
@@ -4993,7 +5089,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:626
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:638
msgid "Supplier Cost"
msgstr ""
@@ -5015,7 +5111,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1690
+#: part/templates/part/prices.html:215 part/views.py:1699
msgid "Add Internal Price Break"
msgstr ""
@@ -5035,9 +5131,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:588
-#: templates/js/translated/part.js:491 templates/js/translated/part.js:1115
-#: templates/js/translated/part.js:1302
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:600
+#: templates/js/translated/part.js:497 templates/js/translated/part.js:1122
+#: templates/js/translated/part.js:1309
msgid "No Stock"
msgstr ""
@@ -5054,116 +5150,116 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:116
+#: part/templatetags/inventree_extras.py:125
msgid "Unknown database"
msgstr ""
-#: part/views.py:92
+#: part/views.py:93
msgid "Set Part Category"
msgstr ""
-#: part/views.py:142
+#: part/views.py:143
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:214
+#: part/views.py:215
msgid "Match References"
msgstr ""
-#: part/views.py:502
+#: part/views.py:511
msgid "None"
msgstr ""
-#: part/views.py:561
+#: part/views.py:570
msgid "Part QR Code"
msgstr ""
-#: part/views.py:663
+#: part/views.py:672
msgid "Select Part Image"
msgstr ""
-#: part/views.py:689
+#: part/views.py:698
msgid "Updated part image"
msgstr ""
-#: part/views.py:692
+#: part/views.py:701
msgid "Part image not found"
msgstr ""
-#: part/views.py:766
+#: part/views.py:775
msgid "Match Parts"
msgstr ""
-#: part/views.py:1101
+#: part/views.py:1110
msgid "Export Bill of Materials"
msgstr ""
-#: part/views.py:1150
+#: part/views.py:1159
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1157
+#: part/views.py:1166
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1166
+#: part/views.py:1175
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1315
+#: part/views.py:1324
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1325
+#: part/views.py:1334
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1332
+#: part/views.py:1341
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1391 templates/js/translated/part.js:315
+#: part/views.py:1400 templates/js/translated/part.js:315
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1429
+#: part/views.py:1438
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1435
+#: part/views.py:1444
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1444
+#: part/views.py:1453
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1545
+#: part/views.py:1554
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1601
+#: part/views.py:1610
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1623
+#: part/views.py:1632
msgid "Added new price break"
msgstr ""
-#: part/views.py:1699
+#: part/views.py:1708
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1707
+#: part/views.py:1716
msgid "Delete Internal Price Break"
msgstr ""
-#: plugin/integration.py:124
+#: plugin/integration.py:138
msgid "No author found"
msgstr ""
-#: plugin/integration.py:136
+#: plugin/integration.py:152
msgid "No date found"
msgstr ""
@@ -5191,7 +5287,7 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:195
+#: plugin/models.py:199
msgid "Plugin"
msgstr ""
@@ -5357,12 +5453,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:517 stock/templates/stock/item_base.html:156
+#: stock/models.py:519 stock/templates/stock/item_base.html:156
#: templates/js/translated/build.js:293 templates/js/translated/build.js:697
#: templates/js/translated/build.js:1073
#: templates/js/translated/model_renderers.js:95
#: templates/js/translated/order.js:99 templates/js/translated/order.js:1945
-#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:415
+#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:423
msgid "Serial Number"
msgstr ""
@@ -5371,19 +5467,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:1948
+#: stock/models.py:1976
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:1954
+#: stock/models.py:1982
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:49
+#: templates/InvenTree/settings/plugin.html:50
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2367
+#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2525
msgid "Date"
msgstr ""
@@ -5396,23 +5492,27 @@ msgid "Fail"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:123
-#: stock/templates/stock/stock_sidebar.html:12
+#: stock/templates/stock/stock_sidebar.html:16
msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:578 templates/js/translated/stock.js:748
-#: templates/js/translated/stock.js:2627
+#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756
+#: templates/js/translated/stock.js:2785
msgid "Serial"
msgstr ""
-#: stock/api.py:478
+#: stock/api.py:476
msgid "Quantity is required"
msgstr ""
-#: stock/forms.py:77 stock/forms.py:251 stock/models.py:574
+#: stock/api.py:483
+msgid "Valid part must be supplied"
+msgstr ""
+
+#: stock/forms.py:77 stock/forms.py:251 stock/models.py:576
#: stock/templates/stock/item_base.html:193
-#: templates/js/translated/stock.js:1701
+#: templates/js/translated/stock.js:1709
msgid "Expiry Date"
msgstr ""
@@ -5460,228 +5560,228 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:60 stock/models.py:611
+#: stock/models.py:62 stock/models.py:613
#: stock/templates/stock/item_base.html:416
msgid "Owner"
msgstr ""
-#: stock/models.py:61 stock/models.py:612
+#: stock/models.py:63 stock/models.py:614
msgid "Select Owner"
msgstr ""
-#: stock/models.py:336
+#: stock/models.py:338
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:372
+#: stock/models.py:374
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:382 stock/models.py:391
+#: stock/models.py:384 stock/models.py:393
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:383
+#: stock/models.py:385
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:405
+#: stock/models.py:407
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:413
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:418
+#: stock/models.py:420
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:461
+#: stock/models.py:463
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:470
+#: stock/models.py:472
msgid "Base part"
msgstr ""
-#: stock/models.py:478
+#: stock/models.py:480
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:484 stock/templates/stock/location.html:16
+#: stock/models.py:486 stock/templates/stock/location.html:16
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:487
+#: stock/models.py:489
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:494
+#: stock/models.py:496
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:500 stock/templates/stock/item_base.html:298
+#: stock/models.py:502 stock/templates/stock/item_base.html:298
msgid "Installed In"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:505
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:521
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:535
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:537
+#: stock/models.py:539
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:546
+#: stock/models.py:548
msgid "Source Build"
msgstr ""
-#: stock/models.py:548
+#: stock/models.py:550
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:559
+#: stock/models.py:561
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:562
+#: stock/models.py:564
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:568
+#: stock/models.py:570
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:575
+#: stock/models.py:577
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:588
+#: stock/models.py:590
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:588
+#: stock/models.py:590
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:598 stock/templates/stock/item.html:111
+#: stock/models.py:600 stock/templates/stock/item.html:128
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:607
+#: stock/models.py:609
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1068
+#: stock/models.py:1096
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1074
+#: stock/models.py:1102
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1080
+#: stock/models.py:1108
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1083
+#: stock/models.py:1111
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1086
+#: stock/models.py:1114
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1093
+#: stock/models.py:1121
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1164
+#: stock/models.py:1192
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1167
+#: stock/models.py:1195
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1170
+#: stock/models.py:1198
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1173
+#: stock/models.py:1201
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1176
+#: stock/models.py:1204
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1179
+#: stock/models.py:1207
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1186 stock/serializers.py:774
+#: stock/models.py:1214 stock/serializers.py:775
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1190
+#: stock/models.py:1218
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1194
+#: stock/models.py:1222
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1198
+#: stock/models.py:1226
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1369
+#: stock/models.py:1397
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1868
+#: stock/models.py:1896
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1925
+#: stock/models.py:1953
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1931
+#: stock/models.py:1959
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1949
+#: stock/models.py:1977
msgid "Test name"
msgstr ""
-#: stock/models.py:1955 templates/js/translated/table_filters.js:271
+#: stock/models.py:1983 templates/js/translated/table_filters.js:271
msgid "Test result"
msgstr ""
-#: stock/models.py:1961
+#: stock/models.py:1989
msgid "Test output value"
msgstr ""
-#: stock/models.py:1968
+#: stock/models.py:1996
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1974
+#: stock/models.py:2002
msgid "Test notes"
msgstr ""
@@ -5706,7 +5806,7 @@ msgstr ""
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:326 stock/serializers.py:731 stock/serializers.py:972
+#: stock/serializers.py:326 stock/serializers.py:732 stock/serializers.py:973
msgid "Destination stock location"
msgstr ""
@@ -5718,63 +5818,63 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:588
+#: stock/serializers.py:589
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:592
+#: stock/serializers.py:593
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:597
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:626
+#: stock/serializers.py:627
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:632
+#: stock/serializers.py:633
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:640
+#: stock/serializers.py:641
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:650 stock/serializers.py:880
+#: stock/serializers.py:651 stock/serializers.py:881
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:738
+#: stock/serializers.py:739
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:743
+#: stock/serializers.py:744
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:744
+#: stock/serializers.py:745
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:749
+#: stock/serializers.py:750
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:750
+#: stock/serializers.py:751
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:760
+#: stock/serializers.py:761
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:842
+#: stock/serializers.py:843
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:870
+#: stock/serializers.py:871
msgid "Stock transaction notes"
msgstr ""
@@ -5787,47 +5887,51 @@ msgid "New Entry"
msgstr ""
#: stock/templates/stock/item.html:48
-msgid "Child Stock Items"
-msgstr ""
-
-#: stock/templates/stock/item.html:55
-msgid "This stock item does not have any child items"
+msgid "Stock Item Allocations"
msgstr ""
#: stock/templates/stock/item.html:64
-#: stock/templates/stock/stock_sidebar.html:8
-msgid "Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:57
-msgid "Test Report"
+msgid "Child Stock Items"
msgstr ""
#: stock/templates/stock/item.html:72
+msgid "This stock item does not have any child items"
+msgstr ""
+
+#: stock/templates/stock/item.html:81
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:57
+msgid "Test Report"
+msgstr ""
+
+#: stock/templates/stock/item.html:89
msgid "Delete Test Data"
msgstr ""
-#: stock/templates/stock/item.html:76
+#: stock/templates/stock/item.html:93
msgid "Add Test Data"
msgstr ""
-#: stock/templates/stock/item.html:133
+#: stock/templates/stock/item.html:150
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:137 stock/views.py:482
+#: stock/templates/stock/item.html:154 stock/views.py:482
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304
+#: stock/templates/stock/item.html:309 stock/templates/stock/item.html:334
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:324
+#: stock/templates/stock/item.html:354
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:338
+#: stock/templates/stock/item.html:368
msgid "Delete Test Result"
msgstr ""
@@ -5952,7 +6056,7 @@ msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:206
-#: templates/js/translated/stock.js:1714
+#: templates/js/translated/stock.js:1722
msgid "Last Updated"
msgstr ""
@@ -6111,7 +6215,7 @@ msgid "Sublocations"
msgstr ""
#: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164
-#: templates/stats.html:97 users/models.py:42
+#: templates/stats.html:109 users/models.py:42
msgid "Stock Locations"
msgstr ""
@@ -6135,7 +6239,7 @@ msgstr ""
msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/stock_sidebar.html:16
+#: stock/templates/stock/stock_sidebar.html:20
msgid "Child Items"
msgstr ""
@@ -6164,7 +6268,7 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:162
+#: stock/views.py:162 templates/js/translated/stock.js:139
msgid "Edit Stock Location"
msgstr ""
@@ -6204,7 +6308,7 @@ msgstr ""
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:727 templates/js/translated/stock.js:1066
+#: stock/views.py:727 templates/js/translated/stock.js:1074
msgid "Confirm stock adjustment"
msgstr ""
@@ -6212,7 +6316,7 @@ msgstr ""
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:324
+#: stock/views.py:760 templates/js/translated/stock.js:332
msgid "Edit Stock Item"
msgstr ""
@@ -6224,7 +6328,7 @@ msgstr ""
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1153 templates/js/translated/stock.js:304
+#: stock/views.py:1153 templates/js/translated/stock.js:312
msgid "Duplicate Stock Item"
msgstr ""
@@ -6268,6 +6372,18 @@ msgstr ""
msgid "The requested page does not exist"
msgstr ""
+#: templates/500.html:5 templates/500.html:11
+msgid "Internal Server Error"
+msgstr ""
+
+#: templates/500.html:14
+msgid "The InvenTree server raised an internal error"
+msgstr ""
+
+#: templates/500.html:15
+msgid "Refer to the error log in the admin interface for further details"
+msgstr ""
+
#: templates/503.html:10 templates/503.html:35
msgid "Site is in Maintenance"
msgstr ""
@@ -6390,7 +6506,7 @@ msgid "Signup"
msgstr ""
#: templates/InvenTree/settings/mixins/settings.html:5
-#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:118
+#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113
msgid "Settings"
msgstr ""
@@ -6431,43 +6547,43 @@ msgstr ""
msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage."
msgstr ""
-#: templates/InvenTree/settings/plugin.html:32
+#: templates/InvenTree/settings/plugin.html:33
msgid "Plugins"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:37
+#: templates/InvenTree/settings/plugin.html:38
#: templates/js/translated/plugin.js:15
msgid "Install Plugin"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:46 templates/navbar.html:111
+#: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111
#: users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin.html:49
#: templates/InvenTree/settings/plugin_settings.html:28
msgid "Author"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:50
+#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin_settings.html:43
msgid "Version"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:91
+#: templates/InvenTree/settings/plugin.html:92
msgid "Inactive plugins"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:114
+#: templates/InvenTree/settings/plugin.html:115
msgid "Plugin Error Stack"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:123
+#: templates/InvenTree/settings/plugin.html:124
msgid "Stage"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:125
+#: templates/InvenTree/settings/plugin.html:126
msgid "Message"
msgstr ""
@@ -6555,37 +6671,37 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:75
+#: templates/InvenTree/settings/settings.html:78
msgid "Edit Plugin Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:77
+#: templates/InvenTree/settings/settings.html:80
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:79
+#: templates/InvenTree/settings/settings.html:82
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:168
+#: templates/InvenTree/settings/settings.html:171
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:190
-#: templates/InvenTree/settings/settings.html:289
+#: templates/InvenTree/settings/settings.html:193
+#: templates/InvenTree/settings/settings.html:292
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:191
-#: templates/InvenTree/settings/settings.html:290
+#: templates/InvenTree/settings/settings.html:194
+#: templates/InvenTree/settings/settings.html:293
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:269
+#: templates/InvenTree/settings/settings.html:272
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:273
+#: templates/InvenTree/settings/settings.html:276
msgid "ID"
msgstr ""
@@ -6763,124 +6879,105 @@ msgstr ""
msgid "Remove multifactor"
msgstr ""
-#: templates/InvenTree/settings/user.html:219
+#: templates/InvenTree/settings/user.html:220
+msgid "Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:226
+msgid "Log out active sessions (except this one)"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:227
+msgid "Log Out Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:236
+msgid "unknown on unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:237
+msgid "unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:241
+msgid "IP Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:242
+msgid "Device"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:243
+msgid "Last Activity"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:252
+#, python-format
+msgid "%(time)s ago (this session)"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:254
+#, python-format
+msgid "%(time)s ago"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:266
+msgid "Do you really want to remove the selected email address?"
+msgstr ""
+
#: templates/InvenTree/settings/user_display.html:25
msgid "Theme Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:227
#: templates/InvenTree/settings/user_display.html:35
msgid "Select theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:237
#: templates/InvenTree/settings/user_display.html:46
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:246
#: templates/InvenTree/settings/user_display.html:54
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:254
#: templates/InvenTree/settings/user_display.html:63
msgid "Select language"
msgstr ""
-#: templates/InvenTree/settings/user.html:270
#: templates/InvenTree/settings/user_display.html:79
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:272
#: templates/InvenTree/settings/user_display.html:81
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:279
#: templates/InvenTree/settings/user_display.html:88
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:281
#: templates/InvenTree/settings/user_display.html:91
msgid "Some languages are not complete"
msgstr ""
-#: templates/InvenTree/settings/user.html:283
#: templates/InvenTree/settings/user_display.html:93
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user.html:285
+#: templates/InvenTree/settings/user_display.html:95
+msgid "and hidden."
+msgstr ""
+
#: templates/InvenTree/settings/user_display.html:95
msgid "Show them too"
msgstr ""
-#: templates/InvenTree/settings/user.html:292
#: templates/InvenTree/settings/user_display.html:101
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user.html:293
-#, python-format
-msgid "Native language translation of the\n"
-" InvenTree web application is community contributed via crowdin. Contributions are\n"
-" welcomed and encouraged."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:302
-msgid "Active Sessions"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:308
-msgid "Log out active sessions (except this one)"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:309
-msgid "Log Out Active Sessions"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:318
-msgid "unknown on unknown"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:319
-msgid "unknown"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:323
-msgid "IP Address"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:324
-msgid "Device"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:325
-msgid "Last Activity"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:334
-#, python-format
-msgid "%(time)s ago (this session)"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:336
-#, python-format
-msgid "%(time)s ago"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:348
-msgid "Do you really want to remove the selected email address?"
-msgstr ""
-
-#: templates/InvenTree/settings/user_display.html:95
-msgid "and hidden."
-msgstr ""
-
#: templates/InvenTree/settings/user_display.html:102
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
@@ -6899,9 +6996,9 @@ msgid "InvenTree Version Information"
msgstr ""
#: templates/about.html:11 templates/about.html:105
-#: templates/js/translated/bom.js:395 templates/js/translated/modals.js:53
-#: templates/js/translated/modals.js:573 templates/js/translated/modals.js:667
-#: templates/js/translated/modals.js:970 templates/modals.html:15
+#: templates/js/translated/bom.js:407 templates/js/translated/modals.js:53
+#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
+#: templates/js/translated/modals.js:983 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -7178,13 +7275,13 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1103
+#: templates/js/translated/bom.js:1117
msgid "Required Quantity"
msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:579 templates/js/translated/build.js:1189
+#: templates/js/translated/bom.js:591 templates/js/translated/build.js:1189
#: templates/js/translated/build.js:1810
#: templates/js/translated/table_filters.js:178
msgid "Available"
@@ -7208,10 +7305,6 @@ msgstr ""
msgid "Click on the following link to view this part"
msgstr ""
-#: templates/email/low_stock_notification.html:17
-msgid "Total Stock"
-msgstr ""
-
#: templates/email/low_stock_notification.html:19
msgid "Minimum Quantity"
msgstr ""
@@ -7232,11 +7325,11 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1040
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1053
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1041
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1054
msgid "No response from the InvenTree server"
msgstr ""
@@ -7248,27 +7341,27 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1063
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1051
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1064
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1068
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1056
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1069
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1073
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1061
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1074
msgid "The requested resource could not be located on the server"
msgstr ""
@@ -7280,11 +7373,11 @@ msgstr ""
msgid "HTTP method not allowed at URL"
msgstr ""
-#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1065
+#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1078
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1079
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -7353,7 +7446,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:140
-#: templates/js/translated/modals.js:1030
+#: templates/js/translated/modals.js:1043
msgid "Invalid server response"
msgstr ""
@@ -7381,7 +7474,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1018
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026
msgid "Remove stock item"
msgstr ""
@@ -7428,12 +7521,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73
-#: templates/js/translated/order.js:369 templates/js/translated/stock.js:510
+#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74
-#: templates/js/translated/order.js:370 templates/js/translated/stock.js:511
+#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519
msgid "Select file format"
msgstr ""
@@ -7489,87 +7582,87 @@ msgstr ""
msgid "Remove substitute part"
msgstr ""
-#: templates/js/translated/bom.js:340
-msgid "Select and add a new variant item using the input below"
+#: templates/js/translated/bom.js:352
+msgid "Select and add a new substitute part using the input below"
msgstr ""
-#: templates/js/translated/bom.js:351
+#: templates/js/translated/bom.js:363
msgid "Are you sure you wish to remove this substitute part link?"
msgstr ""
-#: templates/js/translated/bom.js:357
+#: templates/js/translated/bom.js:369
msgid "Remove Substitute Part"
msgstr ""
-#: templates/js/translated/bom.js:396
+#: templates/js/translated/bom.js:408
msgid "Add Substitute"
msgstr ""
-#: templates/js/translated/bom.js:397
+#: templates/js/translated/bom.js:409
msgid "Edit BOM Item Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:516
+#: templates/js/translated/bom.js:528
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:520 templates/js/translated/build.js:1171
+#: templates/js/translated/bom.js:532 templates/js/translated/build.js:1171
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:525
+#: templates/js/translated/bom.js:537
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:597
+#: templates/js/translated/bom.js:609
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:612
+#: templates/js/translated/bom.js:624
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:619
+#: templates/js/translated/bom.js:631
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:668 templates/js/translated/bom.js:757
+#: templates/js/translated/bom.js:680 templates/js/translated/bom.js:769
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:728
+#: templates/js/translated/bom.js:740
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:730
+#: templates/js/translated/bom.js:742
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:732
+#: templates/js/translated/bom.js:744
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:734 templates/js/translated/bom.js:908
+#: templates/js/translated/bom.js:746 templates/js/translated/bom.js:920
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:736 templates/js/translated/bom.js:891
+#: templates/js/translated/bom.js:748 templates/js/translated/bom.js:903
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:830 templates/js/translated/build.js:915
+#: templates/js/translated/bom.js:842 templates/js/translated/build.js:915
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:886
+#: templates/js/translated/bom.js:898
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:1086 templates/js/translated/build.js:1155
+#: templates/js/translated/bom.js:1100 templates/js/translated/build.js:1155
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1108
+#: templates/js/translated/bom.js:1122
msgid "Inherited from parent BOM"
msgstr ""
@@ -7725,9 +7818,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1206
-#: templates/js/translated/part.js:1617 templates/js/translated/stock.js:1512
-#: templates/js/translated/stock.js:2321
+#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1213
+#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1520
+#: templates/js/translated/stock.js:2479
msgid "Select"
msgstr ""
@@ -7735,7 +7828,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2540
+#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2698
msgid "No user information"
msgstr ""
@@ -7808,34 +7901,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:511
-#: templates/js/translated/part.js:596
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:517
+#: templates/js/translated/part.js:602
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:515
-#: templates/js/translated/part.js:600
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:521
+#: templates/js/translated/part.js:606
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:690
+#: templates/js/translated/company.js:631 templates/js/translated/part.js:696
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:732
+#: templates/js/translated/company.js:668 templates/js/translated/part.js:738
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:733
+#: templates/js/translated/company.js:669 templates/js/translated/part.js:739
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:750
+#: templates/js/translated/company.js:688 templates/js/translated/part.js:756
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:762
+#: templates/js/translated/company.js:699 templates/js/translated/part.js:768
msgid "Delete Parameter"
msgstr ""
@@ -7844,12 +7937,12 @@ msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:420
+#: templates/js/translated/filters.js:429
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:421
+#: templates/js/translated/filters.js:430
msgid "false"
msgstr ""
@@ -7869,7 +7962,7 @@ msgstr ""
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:329
+#: templates/js/translated/filters.js:338
msgid "Create filter"
msgstr ""
@@ -7898,20 +7991,20 @@ msgstr ""
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1080 templates/modals.html:19
+#: templates/js/translated/forms.js:1082 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1471
+#: templates/js/translated/forms.js:1487
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1675
+#: templates/js/translated/forms.js:1691
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1895
+#: templates/js/translated/forms.js:1930
msgid "Clear input"
msgstr ""
@@ -7924,7 +8017,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1042
+#: templates/js/translated/stock.js:1050
msgid "Select Stock Items"
msgstr ""
@@ -7974,12 +8067,12 @@ msgid "Select Label Template"
msgstr ""
#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
-#: templates/js/translated/modals.js:599
+#: templates/js/translated/modals.js:610
msgid "Cancel"
msgstr ""
#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:666 templates/js/translated/modals.js:969
+#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:982
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
@@ -7988,47 +8081,47 @@ msgstr ""
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:381
+#: templates/js/translated/modals.js:392
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:540
+#: templates/js/translated/modals.js:551
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:598
+#: templates/js/translated/modals.js:609
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:655
+#: templates/js/translated/modals.js:666
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:921
+#: templates/js/translated/modals.js:934
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:921
+#: templates/js/translated/modals.js:934
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:946
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1030
+#: templates/js/translated/modals.js:1043
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1045
+#: templates/js/translated/modals.js:1058
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1046
+#: templates/js/translated/modals.js:1059
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1069
+#: templates/js/translated/modals.js:1082
msgid "Error requesting form data"
msgstr ""
@@ -8052,23 +8145,24 @@ msgstr ""
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:236
+#: templates/js/translated/model_renderers.js:249
+#: templates/js/translated/model_renderers.js:270
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:253
+#: templates/js/translated/model_renderers.js:287
msgid "Shipment ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:273
+#: templates/js/translated/model_renderers.js:307
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:310
+#: templates/js/translated/model_renderers.js:344
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:339
+#: templates/js/translated/model_renderers.js:373
msgid "Supplier Part ID"
msgstr ""
@@ -8116,7 +8210,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2123
+#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2131
msgid "Stock Status"
msgstr ""
@@ -8140,7 +8234,7 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:790 templates/js/translated/part.js:803
+#: templates/js/translated/order.js:790 templates/js/translated/part.js:809
msgid "No purchase orders found"
msgstr ""
@@ -8165,7 +8259,7 @@ msgid "Total"
msgstr ""
#: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163
-#: templates/js/translated/part.js:1834 templates/js/translated/part.js:2045
+#: templates/js/translated/part.js:1841 templates/js/translated/part.js:2052
msgid "Unit Price"
msgstr ""
@@ -8181,7 +8275,7 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1166 templates/js/translated/part.js:935
+#: templates/js/translated/order.js:1166 templates/js/translated/part.js:942
msgid "Receive line item"
msgstr ""
@@ -8250,7 +8344,7 @@ msgid "Delete Stock Allocation"
msgstr ""
#: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048
-#: templates/js/translated/stock.js:1428
+#: templates/js/translated/stock.js:1436
msgid "Shipped to customer"
msgstr ""
@@ -8378,144 +8472,148 @@ msgstr ""
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:412
+#: templates/js/translated/part.js:351
+msgid "Create Part Variant"
+msgstr ""
+
+#: templates/js/translated/part.js:418
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:414
+#: templates/js/translated/part.js:420
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:419
+#: templates/js/translated/part.js:425
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:421
+#: templates/js/translated/part.js:427
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:438
+#: templates/js/translated/part.js:444
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:448
+#: templates/js/translated/part.js:454
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:451
+#: templates/js/translated/part.js:457
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:475
+#: templates/js/translated/part.js:481
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:503 templates/js/translated/part.js:588
+#: templates/js/translated/part.js:509 templates/js/translated/part.js:594
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:507 templates/js/translated/part.js:592
+#: templates/js/translated/part.js:513 templates/js/translated/part.js:598
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:519
+#: templates/js/translated/part.js:525
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:529
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:638
+#: templates/js/translated/part.js:644
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1005
+#: templates/js/translated/part.js:1012
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1029
+#: templates/js/translated/part.js:1036
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1096 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:1363
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1266
+#: templates/js/translated/part.js:1273
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1289
+#: templates/js/translated/part.js:1296
#: templates/js/translated/table_filters.js:430
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1380 templates/js/translated/part.js:1552
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559
+#: templates/js/translated/stock.js:2440
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1396
+#: templates/js/translated/part.js:1403
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1571 templates/js/translated/stock.js:2301
+#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2459
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1635
+#: templates/js/translated/part.js:1642
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1649 templates/js/translated/stock.js:2345
+#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2503
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1693
+#: templates/js/translated/part.js:1700
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1744 templates/js/translated/stock.js:1234
+#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1242
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1745 templates/js/translated/stock.js:1235
+#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1243
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1751
+#: templates/js/translated/part.js:1758
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1773
+#: templates/js/translated/part.js:1780
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1787
+#: templates/js/translated/part.js:1794
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1812
+#: templates/js/translated/part.js:1819
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1867
+#: templates/js/translated/part.js:1874
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1868
+#: templates/js/translated/part.js:1875
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1969
+#: templates/js/translated/part.js:1976
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1988
+#: templates/js/translated/part.js:1995
msgid "Single Price Difference"
msgstr ""
@@ -8589,340 +8687,344 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:73
+#: templates/js/translated/stock.js:74
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:173
+#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:181
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/stock.js:93 templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:94 templates/js/translated/stock.js:183
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/stock.js:101
+#: templates/js/translated/stock.js:102
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:110
+#: templates/js/translated/stock.js:111
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:146
+#: templates/js/translated/stock.js:154
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:186
+#: templates/js/translated/stock.js:194
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:225
+#: templates/js/translated/stock.js:233
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:231
+#: templates/js/translated/stock.js:239
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:374
+#: templates/js/translated/stock.js:382
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:387
+#: templates/js/translated/stock.js:395
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:412
+#: templates/js/translated/stock.js:420
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:416 templates/js/translated/stock.js:417
+#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:433
+#: templates/js/translated/stock.js:441
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:453
+#: templates/js/translated/stock.js:461
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:462
+#: templates/js/translated/stock.js:470
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:507
+#: templates/js/translated/stock.js:515
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:518
+#: templates/js/translated/stock.js:526
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:527
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:628
+#: templates/js/translated/stock.js:636
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:629
+#: templates/js/translated/stock.js:637
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:706
+#: templates/js/translated/stock.js:714
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:707
+#: templates/js/translated/stock.js:715
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:709
+#: templates/js/translated/stock.js:717
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:710
+#: templates/js/translated/stock.js:718
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:796
+#: templates/js/translated/stock.js:804
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:797
+#: templates/js/translated/stock.js:805
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:892
+#: templates/js/translated/stock.js:900
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:893
+#: templates/js/translated/stock.js:901
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:899
+#: templates/js/translated/stock.js:907
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:900
+#: templates/js/translated/stock.js:908
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:904
+#: templates/js/translated/stock.js:912
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:905
+#: templates/js/translated/stock.js:913
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:909
+#: templates/js/translated/stock.js:917
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:910 users/models.py:206
+#: templates/js/translated/stock.js:918 users/models.py:208
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:914 templates/stock_table.html:58
+#: templates/js/translated/stock.js:922 templates/stock_table.html:58
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1003
+#: templates/js/translated/stock.js:1011
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1003
+#: templates/js/translated/stock.js:1011
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1043
+#: templates/js/translated/stock.js:1051
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1201
+#: templates/js/translated/stock.js:1209
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1211
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1208
+#: templates/js/translated/stock.js:1216
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1230
+#: templates/js/translated/stock.js:1238
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1256
+#: templates/js/translated/stock.js:1264
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1313
+#: templates/js/translated/stock.js:1321
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1420
+#: templates/js/translated/stock.js:1428
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1424
+#: templates/js/translated/stock.js:1432
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1432
+#: templates/js/translated/stock.js:1440
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1438
+#: templates/js/translated/stock.js:1446
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1596
+#: templates/js/translated/stock.js:1604
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1601
+#: templates/js/translated/stock.js:1609
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1612
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/stock.js:1616
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1610
+#: templates/js/translated/stock.js:1618
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1616
+#: templates/js/translated/stock.js:1624
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1626
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1620
+#: templates/js/translated/stock.js:1628
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1625
+#: templates/js/translated/stock.js:1633
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1632
+#: templates/js/translated/stock.js:1640
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1634
+#: templates/js/translated/stock.js:1642
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1644
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1640
+#: templates/js/translated/stock.js:1648
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1698
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1763
+#: templates/js/translated/stock.js:1771
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1801
+#: templates/js/translated/stock.js:1809
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1822 templates/js/translated/stock.js:1870
+#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:1878
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1910
+#: templates/js/translated/stock.js:1918
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1937
+#: templates/js/translated/stock.js:1945
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1939
+#: templates/js/translated/stock.js:1947
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:2138
+#: templates/js/translated/stock.js:2146
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2152
+#: templates/js/translated/stock.js:2160
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2153
+#: templates/js/translated/stock.js:2161
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2377
+#: templates/js/translated/stock.js:2340
+msgid "Allocated Quantity"
+msgstr ""
+
+#: templates/js/translated/stock.js:2535
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:2399
+#: templates/js/translated/stock.js:2557
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2424
+#: templates/js/translated/stock.js:2582
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2443
+#: templates/js/translated/stock.js:2601
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2462
+#: templates/js/translated/stock.js:2620
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2480
+#: templates/js/translated/stock.js:2638
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2503
+#: templates/js/translated/stock.js:2661
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2511
+#: templates/js/translated/stock.js:2669
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2552
+#: templates/js/translated/stock.js:2710
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2553
+#: templates/js/translated/stock.js:2711
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2604
+#: templates/js/translated/stock.js:2762
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2655
+#: templates/js/translated/stock.js:2813
msgid "Uninstall Stock Item"
msgstr ""
@@ -9194,11 +9296,11 @@ msgstr ""
msgid "Sell"
msgstr ""
-#: templates/navbar.html:113
+#: templates/navbar.html:114
msgid "Logout"
msgstr ""
-#: templates/navbar.html:115
+#: templates/navbar.html:116
msgid "Login"
msgstr ""
@@ -9246,31 +9348,43 @@ msgstr ""
msgid "Server is deployed using docker"
msgstr ""
-#: templates/stats.html:40
-msgid "Server status"
+#: templates/stats.html:39
+msgid "Plugin Support"
msgstr ""
#: templates/stats.html:43
-msgid "Healthy"
+msgid "Plugin support enabled"
msgstr ""
#: templates/stats.html:45
-msgid "Issues detected"
+msgid "Plugin support disabled"
msgstr ""
#: templates/stats.html:52
-msgid "Background Worker"
+msgid "Server status"
msgstr ""
#: templates/stats.html:55
+msgid "Healthy"
+msgstr ""
+
+#: templates/stats.html:57
+msgid "Issues detected"
+msgstr ""
+
+#: templates/stats.html:64
+msgid "Background Worker"
+msgstr ""
+
+#: templates/stats.html:67
msgid "Background worker not running"
msgstr ""
-#: templates/stats.html:63
+#: templates/stats.html:75
msgid "Email Settings"
msgstr ""
-#: templates/stats.html:66
+#: templates/stats.html:78
msgid "Email settings not configured"
msgstr ""
@@ -9366,35 +9480,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:193
+#: users/models.py:195
msgid "Permission set"
msgstr ""
-#: users/models.py:201
+#: users/models.py:203
msgid "Group"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
msgid "View"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
msgid "Permission to view items"
msgstr ""
-#: users/models.py:206
+#: users/models.py:208
msgid "Permission to add items"
msgstr ""
-#: users/models.py:208
+#: users/models.py:210
msgid "Change"
msgstr ""
-#: users/models.py:208
+#: users/models.py:210
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:210
+#: users/models.py:212
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.po b/InvenTree/locale/pl/LC_MESSAGES/django.po
index 794e1de29d..672efaf6e8 100644
--- a/InvenTree/locale/pl/LC_MESSAGES/django.po
+++ b/InvenTree/locale/pl/LC_MESSAGES/django.po
@@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-01-10 03:54+0000\n"
-"PO-Revision-Date: 2022-01-10 03:58\n"
+"POT-Creation-Date: 2022-01-29 00:17+0000\n"
+"PO-Revision-Date: 2022-01-29 01:11\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
"Language: pl_PL\n"
@@ -18,15 +18,15 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 138\n"
-#: InvenTree/api.py:64
+#: InvenTree/api.py:55
msgid "API endpoint not found"
msgstr "Nie znaleziono punktu końcowego API"
-#: InvenTree/api.py:110
+#: InvenTree/api.py:101
msgid "No action specified"
msgstr "Nie określono działania"
-#: InvenTree/api.py:124
+#: InvenTree/api.py:116
msgid "No matching action found"
msgstr "Nie znaleziono pasującej akcji"
@@ -80,41 +80,41 @@ msgstr "Potwierdzenie adresu email"
msgid "You must type the same email each time."
msgstr "Należy ponownie wpisać ten sam adres e-mail."
-#: InvenTree/helpers.py:437
+#: InvenTree/helpers.py:439
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr "Powtórzony numer seryjny: {n}"
-#: InvenTree/helpers.py:444 order/models.py:279 order/models.py:420
+#: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425
#: stock/views.py:1231
msgid "Invalid quantity provided"
msgstr "Podano nieprawidłową ilość"
-#: InvenTree/helpers.py:447
+#: InvenTree/helpers.py:449
msgid "Empty serial number string"
msgstr "Pusty ciąg numeru seryjnego"
-#: InvenTree/helpers.py:469 InvenTree/helpers.py:472 InvenTree/helpers.py:475
-#: InvenTree/helpers.py:500
+#: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477
+#: InvenTree/helpers.py:502
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Nieprawidłowa grupa: {g}"
-#: InvenTree/helpers.py:510
+#: InvenTree/helpers.py:512
#, python-brace-format
msgid "Invalid group {group}"
msgstr "Nieprawidłowa grupa {group}"
-#: InvenTree/helpers.py:516
+#: InvenTree/helpers.py:518
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr "Nieprawidłowa/Brak grupy {group}"
-#: InvenTree/helpers.py:522
+#: InvenTree/helpers.py:524
msgid "No serial numbers found"
msgstr "Nie znaleziono numerów seryjnych"
-#: InvenTree/helpers.py:526
+#: InvenTree/helpers.py:528
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Ilość numerów seryjnych ({s}) musi odpowiadać ilości ({q})"
@@ -127,7 +127,7 @@ msgstr "Brak pliku"
msgid "Missing external link"
msgstr "Brak zewnętrznego odnośnika"
-#: InvenTree/models.py:132 stock/models.py:1967
+#: InvenTree/models.py:132 stock/models.py:1995
#: templates/js/translated/attachment.js:119
msgid "Attachment"
msgstr "Załącznik"
@@ -137,15 +137,15 @@ msgid "Select file to attach"
msgstr "Wybierz plik do załączenia"
#: InvenTree/models.py:139 company/models.py:131 company/models.py:348
-#: company/models.py:564 order/models.py:124 part/models.py:828
+#: company/models.py:564 order/models.py:127 part/models.py:830
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1317
+#: templates/js/translated/company.js:829 templates/js/translated/part.js:1324
msgid "Link"
msgstr "Łącze"
-#: InvenTree/models.py:140 build/models.py:330 part/models.py:829
-#: stock/models.py:527
+#: InvenTree/models.py:140 build/models.py:332 part/models.py:831
+#: stock/models.py:529
msgid "Link to external URL"
msgstr "Link do zewnętrznego adresu URL"
@@ -157,10 +157,11 @@ msgstr "Komentarz"
msgid "File comment"
msgstr "Komentarz pliku"
-#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213
-#: common/models.py:1214 part/models.py:2258 part/models.py:2278
+#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1223
+#: common/models.py:1224 common/models.py:1452 common/models.py:1453
+#: part/models.py:2265 part/models.py:2285
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2534
+#: templates/js/translated/stock.js:2692
msgid "User"
msgstr "Użytkownik"
@@ -197,42 +198,42 @@ msgstr "Błąd zmiany nazwy pliku"
msgid "Invalid choice"
msgstr "Błędny wybór"
-#: InvenTree/models.py:277 InvenTree/models.py:278 company/models.py:415
-#: label/models.py:112 part/models.py:772 part/models.py:2442
-#: plugin/models.py:40 report/models.py:181
+#: InvenTree/models.py:277 InvenTree/models.py:278 common/models.py:1438
+#: company/models.py:415 label/models.py:112 part/models.py:774
+#: part/models.py:2449 plugin/models.py:40 report/models.py:181
#: templates/InvenTree/settings/mixins/urls.html:13
-#: templates/InvenTree/settings/plugin.html:47
-#: templates/InvenTree/settings/plugin.html:124
+#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin.html:125
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:279
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:561
-#: templates/js/translated/part.js:700 templates/js/translated/part.js:1624
-#: templates/js/translated/stock.js:2327
+#: templates/InvenTree/settings/settings.html:282
+#: templates/js/translated/company.js:641 templates/js/translated/part.js:567
+#: templates/js/translated/part.js:706 templates/js/translated/part.js:1631
+#: templates/js/translated/stock.js:2485
msgid "Name"
msgstr "Nazwa"
-#: InvenTree/models.py:284 build/models.py:207
+#: InvenTree/models.py:284 build/models.py:209
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:73 label/models.py:119
-#: order/models.py:122 part/models.py:795 part/templates/part/category.html:74
+#: order/models.py:125 part/models.py:797 part/templates/part/category.html:74
#: part/templates/part/part_base.html:163
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:93
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:327 templates/js/translated/bom.js:540
+#: templates/js/translated/bom.js:339 templates/js/translated/bom.js:552
#: templates/js/translated/build.js:1682 templates/js/translated/company.js:345
#: templates/js/translated/company.js:551
#: templates/js/translated/company.js:840 templates/js/translated/order.js:836
#: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258
-#: templates/js/translated/part.js:620 templates/js/translated/part.js:992
-#: templates/js/translated/part.js:1077 templates/js/translated/part.js:1247
-#: templates/js/translated/part.js:1643 templates/js/translated/part.js:1712
-#: templates/js/translated/stock.js:1569 templates/js/translated/stock.js:2339
-#: templates/js/translated/stock.js:2384
+#: templates/js/translated/part.js:626 templates/js/translated/part.js:999
+#: templates/js/translated/part.js:1084 templates/js/translated/part.js:1254
+#: templates/js/translated/part.js:1650 templates/js/translated/part.js:1719
+#: templates/js/translated/stock.js:1577 templates/js/translated/stock.js:2314
+#: templates/js/translated/stock.js:2497 templates/js/translated/stock.js:2542
msgid "Description"
msgstr "Opis"
@@ -244,7 +245,7 @@ msgstr "Opis (opcjonalny)"
msgid "parent"
msgstr "nadrzędny"
-#: InvenTree/serializers.py:65 part/models.py:2727
+#: InvenTree/serializers.py:65 part/models.py:2734
msgid "Must be a valid number"
msgstr "Numer musi być prawidłowy"
@@ -252,83 +253,83 @@ msgstr "Numer musi być prawidłowy"
msgid "Filename"
msgstr "Nazwa pliku"
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:661
msgid "German"
msgstr "Niemiecki"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:662
msgid "Greek"
msgstr "Grecki"
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:663
msgid "English"
msgstr "Angielski"
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:664
msgid "Spanish"
msgstr "Hiszpański"
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:665
msgid "Spanish (Mexican)"
msgstr "Hiszpański (Meksyk)"
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:666
msgid "French"
msgstr "Francuski"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:667
msgid "Hebrew"
msgstr "Hebrajski"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:668
msgid "Italian"
msgstr "Włoski"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:669
msgid "Japanese"
msgstr "Japoński"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:670
msgid "Korean"
msgstr "Koreański"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:671
msgid "Dutch"
msgstr "Holenderski"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:672
msgid "Norwegian"
msgstr "Norweski"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:673
msgid "Polish"
msgstr "Polski"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:674
msgid "Portugese"
msgstr "Portugalski"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:675
msgid "Russian"
msgstr "Rosyjski"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:676
msgid "Swedish"
msgstr "Szwedzki"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:677
msgid "Thai"
msgstr "Tajski"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:678
msgid "Turkish"
msgstr "Turecki"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:679
msgid "Vietnamese"
msgstr "Wietnamski"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:680
msgid "Chinese"
msgstr "Chiński"
@@ -374,7 +375,7 @@ msgstr "Zagubiono"
msgid "Returned"
msgstr "Zwrócone"
-#: InvenTree/status_codes.py:143 order/models.py:941
+#: InvenTree/status_codes.py:143 order/models.py:961
#: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255
msgid "Shipped"
msgstr "Wysłane"
@@ -455,7 +456,7 @@ msgstr ""
msgid "Split child item"
msgstr "Podziel element podrzędny"
-#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2064
+#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2072
msgid "Merged stock items"
msgstr ""
@@ -543,56 +544,56 @@ msgstr "Hasła muszą być zgodne"
msgid "System Information"
msgstr "Informacja systemowa"
-#: barcodes/api.py:54 barcodes/api.py:151
+#: barcodes/api.py:54 barcodes/api.py:152
msgid "Must provide barcode_data parameter"
msgstr ""
-#: barcodes/api.py:127
+#: barcodes/api.py:128
msgid "No match found for barcode data"
msgstr ""
-#: barcodes/api.py:129
+#: barcodes/api.py:130
msgid "Match found for barcode data"
msgstr ""
-#: barcodes/api.py:154
+#: barcodes/api.py:155
msgid "Must provide stockitem parameter"
msgstr ""
-#: barcodes/api.py:161
+#: barcodes/api.py:162
msgid "No matching stock item found"
msgstr "Nie znaleziono pasujących stanów magazynowych"
-#: barcodes/api.py:191
+#: barcodes/api.py:193
msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:195
+#: barcodes/api.py:197
msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:199
+#: barcodes/api.py:201
msgid "Barcode already matches Part"
msgstr ""
-#: barcodes/api.py:205 barcodes/api.py:217
+#: barcodes/api.py:207 barcodes/api.py:219
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:223
+#: barcodes/api.py:225
msgid "Barcode associated with Stock Item"
msgstr ""
-#: build/forms.py:36 build/models.py:1286
+#: build/forms.py:36 build/models.py:1293
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:35 common/models.py:1253
+#: build/templates/build/detail.html:35 common/models.py:1263
#: company/forms.py:42 company/templates/company/supplier_part.html:251
-#: order/models.py:796 order/models.py:1207 order/serializers.py:810
+#: order/models.py:805 order/models.py:1229 order/serializers.py:816
#: order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:145
-#: part/forms.py:161 part/forms.py:177 part/models.py:2629
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144
+#: part/forms.py:160 part/forms.py:176 part/models.py:2636
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:962 part/templates/part/detail.html:1048
+#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -603,7 +604,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:181
#: stock/templates/stock/item_base.html:262
#: stock/templates/stock/item_base.html:270
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:555
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:567
#: templates/js/translated/build.js:295 templates/js/translated/build.js:495
#: templates/js/translated/build.js:689 templates/js/translated/build.js:699
#: templates/js/translated/build.js:1075 templates/js/translated/build.js:1422
@@ -611,11 +612,11 @@ msgstr ""
#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056
#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859
#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036
-#: templates/js/translated/order.js:2150 templates/js/translated/part.js:900
-#: templates/js/translated/part.js:1855 templates/js/translated/part.js:1978
-#: templates/js/translated/part.js:2056 templates/js/translated/stock.js:383
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:750
-#: templates/js/translated/stock.js:2519 templates/js/translated/stock.js:2621
+#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906
+#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985
+#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:391
+#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758
+#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2779
msgid "Quantity"
msgstr "Ilość"
@@ -623,9 +624,9 @@ msgstr "Ilość"
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:41 order/serializers.py:814 stock/forms.py:81
-#: stock/serializers.py:314 templates/js/translated/stock.js:230
-#: templates/js/translated/stock.js:384
+#: build/forms.py:41 order/serializers.py:820 stock/forms.py:81
+#: stock/serializers.py:314 templates/js/translated/stock.js:238
+#: templates/js/translated/stock.js:392
msgid "Serial Numbers"
msgstr "Numer seryjny"
@@ -649,18 +650,18 @@ msgstr "Na pewno anulować?"
msgid "Confirm build cancellation"
msgstr ""
-#: build/models.py:133
+#: build/models.py:135
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:139 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:457
+#: templates/js/translated/build.js:457 templates/js/translated/stock.js:2290
msgid "Build Order"
msgstr "Zlecenie Budowy"
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:140 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:92
#: order/templates/order/so_sidebar.html:13
@@ -670,40 +671,40 @@ msgstr "Zlecenie Budowy"
msgid "Build Orders"
msgstr "Zlecenia budowy"
-#: build/models.py:198
+#: build/models.py:200
msgid "Build Order Reference"
msgstr "Odwołanie do zamówienia wykonania"
-#: build/models.py:199 order/models.py:210 order/models.py:536
-#: order/models.py:803 part/models.py:2638
+#: build/models.py:201 order/models.py:213 order/models.py:541
+#: order/models.py:812 part/models.py:2645
#: 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/translated/bom.js:547 templates/js/translated/build.js:1179
+#: templates/js/translated/bom.js:559 templates/js/translated/build.js:1179
#: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144
msgid "Reference"
msgstr "Referencja"
-#: build/models.py:210
+#: build/models.py:212
msgid "Brief description of the build"
msgstr "Krótki opis budowy"
-#: build/models.py:219 build/templates/build/build_base.html:164
+#: build/models.py:221 build/templates/build/build_base.html:164
#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr "Budowa nadrzędna"
-#: build/models.py:220
+#: build/models.py:222
msgid "BuildOrder to which this build is allocated"
msgstr "Zamówienie budowy, do którego budowa jest przypisana"
-#: build/models.py:225 build/templates/build/build_base.html:77
+#: build/models.py:227 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
-#: order/models.py:856 order/models.py:930
-#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
-#: part/models.py:2204 part/models.py:2220 part/models.py:2239
-#: part/models.py:2256 part/models.py:2358 part/models.py:2480
-#: part/models.py:2613 part/models.py:2920 part/serializers.py:658
+#: order/models.py:876 order/models.py:950
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359
+#: part/models.py:2211 part/models.py:2227 part/models.py:2246
+#: part/models.py:2263 part/models.py:2365 part/models.py:2487
+#: part/models.py:2620 part/models.py:2927 part/serializers.py:658
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -713,205 +714,205 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana"
#: templates/InvenTree/search.html:80
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
-#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:326
-#: templates/js/translated/bom.js:505 templates/js/translated/build.js:680
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:338
+#: templates/js/translated/bom.js:517 templates/js/translated/build.js:680
#: templates/js/translated/build.js:1048 templates/js/translated/build.js:1419
#: templates/js/translated/build.js:1687 templates/js/translated/company.js:492
#: templates/js/translated/company.js:749 templates/js/translated/order.js:84
#: templates/js/translated/order.js:586 templates/js/translated/order.js:1004
#: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933
-#: templates/js/translated/order.js:2128 templates/js/translated/part.js:977
-#: templates/js/translated/part.js:1058 templates/js/translated/part.js:1225
-#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:719
-#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1526
-#: templates/js/translated/stock.js:2609
+#: templates/js/translated/order.js:2128 templates/js/translated/part.js:984
+#: templates/js/translated/part.js:1065 templates/js/translated/part.js:1232
+#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727
+#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1534
+#: templates/js/translated/stock.js:2767
msgid "Part"
msgstr "Część"
-#: build/models.py:233
+#: build/models.py:235
msgid "Select part to build"
msgstr "Wybierz część do budowy"
-#: build/models.py:238
+#: build/models.py:240
msgid "Sales Order Reference"
msgstr "Odwołanie do zamówienia sprzedaży"
-#: build/models.py:242
+#: build/models.py:244
msgid "SalesOrder to which this build is allocated"
msgstr "Zamówienie sprzedaży, do którego budowa jest przypisana"
-#: build/models.py:247 templates/js/translated/build.js:1407
+#: build/models.py:249 templates/js/translated/build.js:1407
#: templates/js/translated/order.js:1564
msgid "Source Location"
msgstr "Lokalizacja źródła"
-#: build/models.py:251
+#: build/models.py:253
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:256
+#: build/models.py:258
msgid "Destination Location"
msgstr "Lokalizacja docelowa"
-#: build/models.py:260
+#: build/models.py:262
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:264
+#: build/models.py:266
msgid "Build Quantity"
msgstr "Ilość do stworzenia"
-#: build/models.py:267
+#: build/models.py:269
msgid "Number of stock items to build"
msgstr "Ilość przedmiotów do zbudowania"
-#: build/models.py:271
+#: build/models.py:273
msgid "Completed items"
msgstr "Ukończone elementy"
-#: build/models.py:273
+#: build/models.py:275
msgid "Number of stock items which have been completed"
msgstr "Ilość produktów magazynowych które zostały ukończone"
-#: build/models.py:277 part/templates/part/part_base.html:234
+#: build/models.py:279 part/templates/part/part_base.html:234
msgid "Build Status"
msgstr "Status budowania"
-#: build/models.py:281
+#: build/models.py:283
msgid "Build status code"
msgstr "Kod statusu budowania"
-#: build/models.py:285 stock/models.py:531
+#: build/models.py:287 stock/models.py:533
msgid "Batch Code"
msgstr "Kod partii"
-#: build/models.py:289
+#: build/models.py:291
msgid "Batch code for this build output"
msgstr "Kod partii dla wyjścia budowy"
-#: build/models.py:292 order/models.py:126 part/models.py:967
+#: build/models.py:294 order/models.py:129 part/models.py:969
#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271
msgid "Creation Date"
msgstr "Data utworzenia"
-#: build/models.py:296 order/models.py:558
+#: build/models.py:298 order/models.py:563
msgid "Target completion date"
msgstr "Docelowy termin zakończenia"
-#: build/models.py:297
+#: build/models.py:299
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:252
+#: build/models.py:302 order/models.py:255
#: templates/js/translated/build.js:1758
msgid "Completion Date"
msgstr "Data zakończenia"
-#: build/models.py:306
+#: build/models.py:308
msgid "completed by"
msgstr "zrealizowane przez"
-#: build/models.py:314 templates/js/translated/build.js:1729
+#: build/models.py:316 templates/js/translated/build.js:1729
msgid "Issued by"
msgstr "Wydany przez"
-#: build/models.py:315
+#: build/models.py:317
msgid "User who issued this build order"
msgstr "Użytkownik, który wydał to zamówienie"
-#: build/models.py:323 build/templates/build/build_base.html:185
-#: build/templates/build/detail.html:116 order/models.py:140
+#: build/models.py:325 build/templates/build/build_base.html:185
+#: build/templates/build/detail.html:116 order/models.py:143
#: order/templates/order/order_base.html:170
-#: order/templates/order/sales_order_base.html:182 part/models.py:971
+#: order/templates/order/sales_order_base.html:182 part/models.py:973
#: report/templates/report/inventree_build_order_base.html:159
#: templates/js/translated/build.js:1741 templates/js/translated/order.js:864
msgid "Responsible"
msgstr "Odpowiedzialny"
-#: build/models.py:324
+#: build/models.py:326
msgid "User responsible for this build order"
msgstr "Użytkownik odpowiedzialny za to zamówienie budowy"
-#: build/models.py:329 build/templates/build/detail.html:102
+#: build/models.py:331 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:525
+#: part/templates/part/part_base.html:354 stock/models.py:527
#: stock/templates/stock/item_base.html:373
msgid "External Link"
msgstr "Link Zewnętrzny"
-#: build/models.py:334 build/serializers.py:201
+#: build/models.py:336 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
-#: order/models.py:144 order/models.py:805 order/models.py:1051
+#: order/models.py:147 order/models.py:814 order/models.py:1071
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:17 part/models.py:956
-#: part/templates/part/detail.html:120 part/templates/part/part_sidebar.html:50
+#: order/templates/order/so_sidebar.html:17 part/models.py:958
+#: part/templates/part/detail.html:137 part/templates/part/part_sidebar.html:54
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:597
-#: stock/models.py:1867 stock/models.py:1973 stock/serializers.py:332
-#: stock/serializers.py:639 stock/serializers.py:737 stock/serializers.py:869
-#: stock/templates/stock/stock_sidebar.html:21
-#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:711
+#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:599
+#: stock/models.py:1895 stock/models.py:2001 stock/serializers.py:332
+#: stock/serializers.py:640 stock/serializers.py:738 stock/serializers.py:870
+#: stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:723
#: templates/js/translated/company.js:845 templates/js/translated/order.js:1149
#: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280
-#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1795
+#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1803
msgid "Notes"
msgstr "Uwagi"
-#: build/models.py:335
+#: build/models.py:337
msgid "Extra build notes"
msgstr "Dodatkowe notatki do budowy"
-#: build/models.py:710
+#: build/models.py:717
msgid "No build output specified"
msgstr "Nie określono danych wyjściowych budowy"
-#: build/models.py:713
+#: build/models.py:720
msgid "Build output is already completed"
msgstr "Budowanie wyjścia jest już ukończone"
-#: build/models.py:716
+#: build/models.py:723
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1108
+#: build/models.py:1115
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1117
+#: build/models.py:1124
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1127
+#: build/models.py:1134
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1133 order/models.py:1167
+#: build/models.py:1140 order/models.py:1189
msgid "Allocation quantity must be greater than zero"
msgstr "Alokowana ilość musi być większa niż zero"
-#: build/models.py:1139
+#: build/models.py:1146
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1196
+#: build/models.py:1203
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1256 stock/templates/stock/item_base.html:345
+#: build/models.py:1263 stock/templates/stock/item_base.html:345
#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1660
#: templates/navbar.html:35
msgid "Build"
msgstr "Budowa"
-#: build/models.py:1257
+#: build/models.py:1264
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1273 build/serializers.py:388 order/serializers.py:690
-#: order/serializers.py:708 stock/serializers.py:577 stock/serializers.py:695
+#: build/models.py:1280 build/serializers.py:388 order/serializers.py:696
+#: order/serializers.py:714 stock/serializers.py:578 stock/serializers.py:696
#: stock/templates/stock/item_base.html:9
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:367
@@ -920,24 +921,24 @@ msgstr ""
#: templates/js/translated/order.js:85 templates/js/translated/order.js:1577
#: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837
#: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030
-#: templates/js/translated/stock.js:555 templates/js/translated/stock.js:720
-#: templates/js/translated/stock.js:2470
+#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728
+#: templates/js/translated/stock.js:2628
msgid "Stock Item"
msgstr "Element magazynowy"
-#: build/models.py:1274
+#: build/models.py:1281
msgid "Source stock item"
msgstr "Lokalizacja magazynowania przedmiotu"
-#: build/models.py:1287
+#: build/models.py:1294
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1295
+#: build/models.py:1302
msgid "Install into"
msgstr "Zainstaluj do"
-#: build/models.py:1296
+#: build/models.py:1303
msgid "Destination stock item"
msgstr "Docelowa lokalizacja magazynowa przedmiotu"
@@ -962,16 +963,16 @@ msgid "This build output is not fully allocated"
msgstr ""
#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294
-#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:730
-#: stock/serializers.py:971 stock/templates/stock/item_base.html:313
+#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:731
+#: stock/serializers.py:972 stock/templates/stock/item_base.html:313
#: templates/js/translated/barcode.js:384
#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:480
#: templates/js/translated/build.js:1087 templates/js/translated/order.js:508
#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955
#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044
-#: templates/js/translated/part.js:179 templates/js/translated/stock.js:556
-#: templates/js/translated/stock.js:721 templates/js/translated/stock.js:928
-#: templates/js/translated/stock.js:1676 templates/js/translated/stock.js:2411
+#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564
+#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936
+#: templates/js/translated/stock.js:1684 templates/js/translated/stock.js:2569
msgid "Location"
msgstr "Lokalizacja"
@@ -980,12 +981,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:137
-#: build/templates/build/detail.html:63 order/models.py:552
+#: build/templates/build/detail.html:63 order/models.py:557
#: order/serializers.py:247 stock/templates/stock/item_base.html:187
#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1716
#: templates/js/translated/order.js:591 templates/js/translated/order.js:840
-#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1651
-#: templates/js/translated/stock.js:2488 templates/js/translated/stock.js:2637
+#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:2646 templates/js/translated/stock.js:2795
msgid "Status"
msgstr "Status"
@@ -1021,8 +1022,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:313 build/serializers.py:362 part/models.py:2753
-#: part/models.py:2912
+#: build/serializers.py:313 build/serializers.py:362 part/models.py:2760
+#: part/models.py:2919
msgid "BOM Item"
msgstr ""
@@ -1038,16 +1039,16 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:394 stock/serializers.py:584
+#: build/serializers.py:394 stock/serializers.py:585
msgid "Item must be in stock"
msgstr "Towar musi znajdować się w magazynie"
-#: build/serializers.py:408 order/models.py:277 order/serializers.py:240
-#: stock/models.py:365 stock/models.py:1077 stock/serializers.py:305
+#: build/serializers.py:408 order/models.py:280 order/serializers.py:240
+#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr "Ilość musi być większa niż zero"
-#: build/serializers.py:450 order/serializers.py:741
+#: build/serializers.py:450 order/serializers.py:747
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1060,7 +1061,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:491 order/serializers.py:984
+#: build/serializers.py:491 order/serializers.py:990
msgid "Allocation items must be provided"
msgstr ""
@@ -1164,13 +1165,13 @@ msgid "Completed"
msgstr "Zakończone"
#: build/templates/build/build_base.html:171
-#: build/templates/build/detail.html:95 order/models.py:927
-#: order/models.py:1023 order/templates/order/sales_order_base.html:9
+#: build/templates/build/detail.html:95 order/models.py:947
+#: order/models.py:1043 order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/order.js:1218
+#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2304
msgid "Sales Order"
msgstr "Zamówienie zakupu"
@@ -1224,7 +1225,7 @@ msgstr "Źródło magazynu"
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:50 order/models.py:878 stock/forms.py:136
+#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:136
#: templates/js/translated/order.js:592 templates/js/translated/order.js:1138
msgid "Destination"
msgstr "Przeznaczenie"
@@ -1239,7 +1240,7 @@ msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:331
-#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2644
+#: templates/js/translated/stock.js:1673 templates/js/translated/stock.js:2802
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:238
msgid "Batch"
@@ -1343,9 +1344,9 @@ msgstr ""
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:107
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:196
-#: part/templates/part/part_sidebar.html:48 stock/templates/stock/item.html:95
-#: stock/templates/stock/stock_sidebar.html:19
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:213
+#: part/templates/part/part_sidebar.html:52 stock/templates/stock/item.html:112
+#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr "Załączniki"
@@ -1360,8 +1361,8 @@ msgstr "Notatki tworzenia"
#: order/templates/order/purchase_order_detail.html:108
#: order/templates/order/sales_order_detail.html:127
#: order/templates/order/sales_order_detail.html:186
-#: part/templates/part/detail.html:124 stock/templates/stock/item.html:115
-#: stock/templates/stock/item.html:205
+#: part/templates/part/detail.html:141 stock/templates/stock/item.html:132
+#: stock/templates/stock/item.html:235
msgid "Edit Notes"
msgstr ""
@@ -1373,7 +1374,7 @@ msgstr ""
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:303
+#: build/templates/build/index.html:18 part/templates/part/detail.html:320
msgid "New Build Order"
msgstr "Nowe zlecenie budowy"
@@ -1453,23 +1454,23 @@ msgstr ""
msgid "Delete Build Order"
msgstr ""
-#: common/files.py:67
+#: common/files.py:65
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
-#: common/files.py:69
+#: common/files.py:67
msgid "Error reading file (invalid encoding)"
msgstr ""
-#: common/files.py:74
+#: common/files.py:72
msgid "Error reading file (invalid format)"
msgstr ""
-#: common/files.py:76
+#: common/files.py:74
msgid "Error reading file (incorrect dimension)"
msgstr ""
-#: common/files.py:78
+#: common/files.py:76
msgid "Error reading file (data could be corrupted)"
msgstr ""
@@ -1490,740 +1491,828 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:344 common/models.py:998 common/models.py:1206
-msgid "Settings key (must be unique - case insensitive"
+#: common/models.py:352
+msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:346
+#: common/models.py:354
msgid "Settings value"
msgstr "Ustawienia wartości"
-#: common/models.py:380
+#: common/models.py:388
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:400
+#: common/models.py:408
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:411
+#: common/models.py:419
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:434
+#: common/models.py:442
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:553
+#: common/models.py:561
msgid "No group"
msgstr ""
-#: common/models.py:595
+#: common/models.py:603
msgid "Restart required"
msgstr ""
-#: common/models.py:596
+#: common/models.py:604
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:603
+#: common/models.py:611
msgid "InvenTree Instance Name"
msgstr "Nazwa instancji InvenTree"
-#: common/models.py:605
+#: common/models.py:613
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:609
+#: common/models.py:617
msgid "Use instance name"
msgstr ""
-#: common/models.py:610
+#: common/models.py:618
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:616 company/models.py:100 company/models.py:101
+#: common/models.py:624 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr "Nazwa firmy"
-#: common/models.py:617
+#: common/models.py:625
msgid "Internal company name"
msgstr ""
-#: common/models.py:622
+#: common/models.py:630
msgid "Base URL"
msgstr "Bazowy URL"
-#: common/models.py:623
+#: common/models.py:631
msgid "Base URL for server instance"
msgstr "Bazowy adres URL dla instancji serwera"
-#: common/models.py:629
+#: common/models.py:637
msgid "Default Currency"
msgstr ""
-#: common/models.py:630
+#: common/models.py:638
msgid "Default currency"
msgstr ""
-#: common/models.py:636
+#: common/models.py:644
msgid "Download from URL"
msgstr "Pobierz z adresu URL"
-#: common/models.py:637
+#: common/models.py:645
msgid "Allow download of remote images and files from external URL"
msgstr "Zezwól na pobieranie zewnętrznych obrazów i plików z zewnętrznego URL"
-#: common/models.py:643 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:651 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr "Obsługa kodu kreskowego"
-#: common/models.py:644
+#: common/models.py:652
msgid "Enable barcode scanner support"
msgstr "Włącz obsługę skanera kodów"
-#: common/models.py:650
+#: common/models.py:658
msgid "IPN Regex"
msgstr "Wyrażenie regularne IPN"
-#: common/models.py:651
+#: common/models.py:659
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:655
+#: common/models.py:663
msgid "Allow Duplicate IPN"
msgstr "Zezwól na powtarzający się IPN"
-#: common/models.py:656
+#: common/models.py:664
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:662
+#: common/models.py:670
msgid "Allow Editing IPN"
msgstr "Zezwól na edycję IPN"
-#: common/models.py:663
+#: common/models.py:671
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:669
+#: common/models.py:677
msgid "Copy Part BOM Data"
msgstr "Skopiuj BOM komponentu"
-#: common/models.py:670
+#: common/models.py:678
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:676
+#: common/models.py:684
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:677
+#: common/models.py:685
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:683
+#: common/models.py:691
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:684
+#: common/models.py:692
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:690
+#: common/models.py:698
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:691
+#: common/models.py:699
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:697 part/models.py:2482 report/models.py:187
+#: common/models.py:705 part/models.py:2489 report/models.py:187
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:422
msgid "Template"
msgstr "Szablon"
-#: common/models.py:698
+#: common/models.py:706
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:704 part/models.py:919 templates/js/translated/bom.js:1068
+#: common/models.py:712 part/models.py:921 templates/js/translated/bom.js:1082
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:434
msgid "Assembly"
msgstr "Złożenie"
-#: common/models.py:705
+#: common/models.py:713
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:711 part/models.py:925
+#: common/models.py:719 part/models.py:927
#: templates/js/translated/table_filters.js:438
msgid "Component"
msgstr "Komponent"
-#: common/models.py:712
+#: common/models.py:720
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:718 part/models.py:936
+#: common/models.py:726 part/models.py:938
msgid "Purchaseable"
msgstr "Możliwość zakupu"
-#: common/models.py:719
+#: common/models.py:727
msgid "Parts are purchaseable by default"
msgstr "Części są domyślnie z możliwością zakupu"
-#: common/models.py:725 part/models.py:941
+#: common/models.py:733 part/models.py:943
#: templates/js/translated/table_filters.js:446
msgid "Salable"
msgstr "Możliwość sprzedaży"
-#: common/models.py:726
+#: common/models.py:734
msgid "Parts are salable by default"
msgstr "Części są domyślnie z możliwością sprzedaży"
-#: common/models.py:732 part/models.py:931
+#: common/models.py:740 part/models.py:933
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
#: templates/js/translated/table_filters.js:450
msgid "Trackable"
msgstr "Możliwość śledzenia"
-#: common/models.py:733
+#: common/models.py:741
msgid "Parts are trackable by default"
msgstr "Części są domyślnie z możliwością śledzenia"
-#: common/models.py:739 part/models.py:951
+#: common/models.py:747 part/models.py:953
#: part/templates/part/part_base.html:147
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr "Wirtualny"
-#: common/models.py:740
+#: common/models.py:748
msgid "Parts are virtual by default"
msgstr "Części są domyślnie wirtualne"
-#: common/models.py:746
+#: common/models.py:754
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:747
+#: common/models.py:755
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:753
+#: common/models.py:761
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:754
+#: common/models.py:762
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:765
+#: common/models.py:773
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:766
+#: common/models.py:774
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:772
+#: common/models.py:780
msgid "Show related parts"
msgstr ""
-#: common/models.py:773
+#: common/models.py:781
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:779
+#: common/models.py:787
msgid "Create initial stock"
msgstr ""
-#: common/models.py:780
+#: common/models.py:788
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:786
+#: common/models.py:794
msgid "Internal Prices"
msgstr ""
-#: common/models.py:787
+#: common/models.py:795
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:793
+#: common/models.py:801
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:794
+#: common/models.py:802
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:800
+#: common/models.py:808
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:801
+#: common/models.py:809
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:808
+#: common/models.py:816
msgid "Enable Reports"
msgstr ""
-#: common/models.py:809
+#: common/models.py:817
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:815 templates/stats.html:25
+#: common/models.py:823 templates/stats.html:25
msgid "Debug Mode"
msgstr "Tryb Debugowania"
-#: common/models.py:816
+#: common/models.py:824
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:822
+#: common/models.py:830
msgid "Page Size"
msgstr "Rozmiar strony"
-#: common/models.py:823
+#: common/models.py:831
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:833
+#: common/models.py:841
msgid "Test Reports"
msgstr "Raporty testów"
-#: common/models.py:834
+#: common/models.py:842
msgid "Enable generation of test reports"
msgstr "Włącz generowanie raportów testów"
-#: common/models.py:840
+#: common/models.py:848
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:841
+#: common/models.py:849
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:847
+#: common/models.py:855
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:848
+#: common/models.py:856
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:854
+#: common/models.py:862
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:855
+#: common/models.py:863
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:857
+#: common/models.py:865
msgid "days"
msgstr "dni"
-#: common/models.py:862
+#: common/models.py:870
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:863
+#: common/models.py:871
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:869
+#: common/models.py:877
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:870
+#: common/models.py:878
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:876
-msgid "Group by Part"
-msgstr "Grupuj według komponentu"
-
-#: common/models.py:877
-msgid "Group stock items by part reference in table views"
-msgstr ""
-
-#: common/models.py:883
+#: common/models.py:884
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:884
+#: common/models.py:885
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:889
+#: common/models.py:890
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:890
+#: common/models.py:891
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:894
+#: common/models.py:895
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:895
+#: common/models.py:896
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:900
+#: common/models.py:901
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:901
+#: common/models.py:902
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:907
+#: common/models.py:908
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:908
+#: common/models.py:909
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:913
+#: common/models.py:914
msgid "Enable registration"
msgstr ""
-#: common/models.py:914
+#: common/models.py:915
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:919
+#: common/models.py:920
msgid "Enable SSO"
msgstr ""
-#: common/models.py:920
+#: common/models.py:921
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:925
+#: common/models.py:926
msgid "Email required"
msgstr ""
-#: common/models.py:926
+#: common/models.py:927
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:931
+#: common/models.py:932
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:932
+#: common/models.py:933
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:937
+#: common/models.py:938
msgid "Mail twice"
msgstr ""
-#: common/models.py:938
+#: common/models.py:939
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:943
+#: common/models.py:944
msgid "Password twice"
msgstr ""
-#: common/models.py:944
+#: common/models.py:945
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:949
+#: common/models.py:950
msgid "Group on signup"
msgstr ""
-#: common/models.py:950
+#: common/models.py:951
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:955
+#: common/models.py:956
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:956
+#: common/models.py:957
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:961
+#: common/models.py:964
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:962
+#: common/models.py:965
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:968
+#: common/models.py:971
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:969
+#: common/models.py:972
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:975
+#: common/models.py:978
msgid "Enable app integration"
msgstr ""
-#: common/models.py:976
+#: common/models.py:979
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:982
+#: common/models.py:985
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:983
+#: common/models.py:986
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1029
+#: common/models.py:992
+msgid "Enable event integration"
+msgstr ""
+
+#: common/models.py:993
+msgid "Enable plugins to respond to internal events"
+msgstr ""
+
+#: common/models.py:1008 common/models.py:1216
+msgid "Settings key (must be unique - case insensitive"
+msgstr ""
+
+#: common/models.py:1039
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1030
+#: common/models.py:1040
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1035
+#: common/models.py:1045
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1036
+#: common/models.py:1046
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1041
+#: common/models.py:1051
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1042
+#: common/models.py:1052
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1047
+#: common/models.py:1057
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1048
+#: common/models.py:1058
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1054
+#: common/models.py:1064
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1055
+#: common/models.py:1065
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1070
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1061
+#: common/models.py:1071
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1066
+#: common/models.py:1076
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1067
+#: common/models.py:1077
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1072
+#: common/models.py:1082
msgid "Show low stock"
msgstr ""
-#: common/models.py:1073
+#: common/models.py:1083
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1078
+#: common/models.py:1088
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1079
+#: common/models.py:1089
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1084
+#: common/models.py:1094
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1085
+#: common/models.py:1095
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1090
+#: common/models.py:1100
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1091
+#: common/models.py:1101
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1096
+#: common/models.py:1106
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1097
+#: common/models.py:1107
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1102
+#: common/models.py:1112
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1103
+#: common/models.py:1113
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1108
+#: common/models.py:1118
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1109
+#: common/models.py:1119
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1114
+#: common/models.py:1124
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1115
+#: common/models.py:1125
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1120
+#: common/models.py:1130
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1121
+#: common/models.py:1131
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1136
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1127
+#: common/models.py:1137
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1142
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1143
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1149
msgid "Inline label display"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1150
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1156
msgid "Inline report display"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1157
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1163
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1164
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1170
msgid "Search Show Stock"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1171
msgid "Display stock levels in search preview window"
msgstr ""
-#: common/models.py:1167
+#: common/models.py:1177
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1178
msgid "Hide inactive parts in search preview window"
msgstr ""
-#: common/models.py:1174
+#: common/models.py:1184
msgid "Show Quantity in Forms"
msgstr "Pokaż ilość w formularzach"
-#: common/models.py:1175
+#: common/models.py:1185
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1181
+#: common/models.py:1191
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1182
+#: common/models.py:1192
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1188
+#: common/models.py:1198
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1199
msgid "InvenTree navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1254 company/forms.py:43
+#: common/models.py:1264 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1261 company/serializers.py:264
+#: common/models.py:1271 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:909 templates/js/translated/part.js:1860
+#: templates/js/translated/part.js:915 templates/js/translated/part.js:1867
msgid "Price"
msgstr "Cena"
-#: common/models.py:1262
+#: common/models.py:1272
msgid "Unit price at specified quantity"
msgstr ""
+#: common/models.py:1429 common/models.py:1568
+msgid "Endpoint"
+msgstr ""
+
+#: common/models.py:1430
+msgid "Endpoint at which this webhook is received"
+msgstr ""
+
+#: common/models.py:1439
+msgid "Name for this webhook"
+msgstr ""
+
+#: common/models.py:1444 part/models.py:948 plugin/models.py:46
+#: templates/js/translated/table_filters.js:34
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:295
+#: templates/js/translated/table_filters.js:417
+msgid "Active"
+msgstr "Aktywny"
+
+#: common/models.py:1445
+msgid "Is this webhook active"
+msgstr ""
+
+#: common/models.py:1459
+msgid "Token"
+msgstr ""
+
+#: common/models.py:1460
+msgid "Token for access"
+msgstr ""
+
+#: common/models.py:1467
+msgid "Secret"
+msgstr ""
+
+#: common/models.py:1468
+msgid "Shared secret for HMAC"
+msgstr ""
+
+#: common/models.py:1535
+msgid "Message ID"
+msgstr ""
+
+#: common/models.py:1536
+msgid "Unique identifier for this message"
+msgstr ""
+
+#: common/models.py:1544
+msgid "Host"
+msgstr ""
+
+#: common/models.py:1545
+msgid "Host from which this message was received"
+msgstr ""
+
+#: common/models.py:1552
+msgid "Header"
+msgstr ""
+
+#: common/models.py:1553
+msgid "Header of this message"
+msgstr ""
+
+#: common/models.py:1559
+msgid "Body"
+msgstr ""
+
+#: common/models.py:1560
+msgid "Body of this message"
+msgstr ""
+
+#: common/models.py:1569
+msgid "Endpoint on which this message was received"
+msgstr ""
+
+#: common/models.py:1574
+msgid "Worked on"
+msgstr ""
+
+#: common/models.py:1575
+msgid "Was the work on this message finished?"
+msgstr ""
+
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
#: part/templates/part/bom_upload/upload_file.html:52
-#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
-#: part/views.py:764
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:213
+#: part/views.py:773
msgid "Upload File"
msgstr "Wyślij plik"
#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
-#: part/views.py:765
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:214
+#: part/views.py:774
msgid "Match Fields"
msgstr ""
@@ -2315,7 +2404,7 @@ msgstr "Punkt kontaktowy"
msgid "Link to external company information"
msgstr "Link do informacji o zewnętrznym przedsiębiorstwie"
-#: company/models.py:139 part/models.py:838
+#: company/models.py:139 part/models.py:840
msgid "Image"
msgstr "Obraz"
@@ -2352,8 +2441,8 @@ msgstr "Waluta"
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:469
-#: stock/templates/stock/item_base.html:142
+#: company/models.py:320 company/models.py:535 stock/models.py:471
+#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:328
msgid "Base Part"
msgstr "Część bazowa"
@@ -2380,7 +2469,7 @@ msgstr "Wybierz producenta"
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:818 templates/js/translated/order.js:1038
-#: templates/js/translated/part.js:245 templates/js/translated/part.js:889
+#: templates/js/translated/part.js:245 templates/js/translated/part.js:895
msgid "MPN"
msgstr "MPN"
@@ -2409,8 +2498,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1960 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:709 templates/js/translated/stock.js:1296
+#: stock/models.py:1988 templates/js/translated/company.js:647
+#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1304
msgid "Value"
msgstr ""
@@ -2418,10 +2507,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:913 part/models.py:2450
+#: company/models.py:429 part/models.py:915 part/models.py:2457
#: part/templates/part/part_base.html:288
-#: templates/InvenTree/settings/settings.html:284
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:715
+#: templates/InvenTree/settings/settings.html:287
+#: templates/js/translated/company.js:653 templates/js/translated/part.js:721
msgid "Units"
msgstr "Jednostki"
@@ -2434,13 +2523,13 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:78
-#: company/templates/company/supplier_part.html:87 order/models.py:224
+#: company/templates/company/supplier_part.html:87 order/models.py:227
#: order/templates/order/order_base.html:112
-#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
-#: part/bom.py:247 stock/templates/stock/item_base.html:397
+#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237
+#: part/bom.py:265 stock/templates/stock/item_base.html:397
#: templates/js/translated/company.js:337
#: templates/js/translated/company.js:774 templates/js/translated/order.js:823
-#: templates/js/translated/part.js:215 templates/js/translated/part.js:857
+#: templates/js/translated/part.js:215 templates/js/translated/part.js:863
#: templates/js/translated/table_filters.js:393
msgid "Supplier"
msgstr "Dostawca"
@@ -2450,8 +2539,8 @@ msgid "Select supplier"
msgstr "Wybierz dostawcę"
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:1025
-#: templates/js/translated/part.js:226 templates/js/translated/part.js:875
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1025
+#: templates/js/translated/part.js:226 templates/js/translated/part.js:881
msgid "SKU"
msgstr "SKU"
@@ -2472,22 +2561,22 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:119
-#: part/models.py:2641 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2648 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr "Uwaga"
-#: company/models.py:580 part/models.py:1779
+#: company/models.py:580 part/models.py:1781
msgid "base cost"
msgstr "koszt podstawowy"
-#: company/models.py:580 part/models.py:1779
+#: company/models.py:580 part/models.py:1781
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:493 stock/templates/stock/item_base.html:338
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1791
+#: stock/models.py:495 stock/templates/stock/item_base.html:338
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1799
msgid "Packaging"
msgstr "Opakowanie"
@@ -2495,7 +2584,7 @@ msgstr "Opakowanie"
msgid "Part packaging"
msgstr "Opakowanie części"
-#: company/models.py:584 part/models.py:1781
+#: company/models.py:584 part/models.py:1783
msgid "multiple"
msgstr "wielokrotność"
@@ -2554,12 +2643,12 @@ msgstr "Prześlij nowy obraz"
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:83 order/models.py:547
-#: order/templates/order/sales_order_base.html:115 stock/models.py:512
-#: stock/models.py:513 stock/serializers.py:625
+#: company/templates/company/company_base.html:83 order/models.py:552
+#: order/templates/order/sales_order_base.html:115 stock/models.py:514
+#: stock/models.py:515 stock/serializers.py:626
#: stock/templates/stock/item_base.html:290
#: templates/js/translated/company.js:329 templates/js/translated/order.js:1240
-#: templates/js/translated/stock.js:2452
+#: templates/js/translated/stock.js:2610
#: templates/js/translated/table_filters.js:397
msgid "Customer"
msgstr "Klient"
@@ -2590,7 +2679,7 @@ msgstr "Utwórz nowego dostawcę części"
#: company/templates/company/detail.html:20
#: company/templates/company/manufacturer_part.html:118
-#: part/templates/part/detail.html:336
+#: part/templates/part/detail.html:353
msgid "New Supplier Part"
msgstr "Nowy dostawca części"
@@ -2598,8 +2687,8 @@ msgstr "Nowy dostawca części"
#: company/templates/company/detail.html:79
#: company/templates/company/manufacturer_part.html:127
#: company/templates/company/manufacturer_part.html:156
-#: part/templates/part/category.html:171 part/templates/part/detail.html:345
-#: part/templates/part/detail.html:374
+#: part/templates/part/category.html:171 part/templates/part/detail.html:362
+#: part/templates/part/detail.html:391
msgid "Options"
msgstr "Opcje"
@@ -2627,7 +2716,7 @@ msgstr "Części producenta"
msgid "Create new manufacturer part"
msgstr "Utwórz nową część producenta"
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:364
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:381
msgid "New Manufacturer Part"
msgstr "Nowa część producenta"
@@ -2641,7 +2730,7 @@ msgstr "Zapasy dostawcy"
#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:68 part/templates/part/part_sidebar.html:33
+#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
@@ -2663,7 +2752,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:91 part/templates/part/part_sidebar.html:37
+#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:41
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
@@ -2691,13 +2780,13 @@ msgstr ""
#: company/templates/company/detail.html:384
#: company/templates/company/manufacturer_part.html:215
-#: part/templates/part/detail.html:418
+#: part/templates/part/detail.html:435
msgid "Delete Supplier Parts?"
msgstr ""
#: company/templates/company/detail.html:385
#: company/templates/company/manufacturer_part.html:216
-#: part/templates/part/detail.html:419
+#: part/templates/part/detail.html:436
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2714,7 +2803,7 @@ msgstr "Producenci"
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:34
#: company/templates/company/supplier_part.html:159
-#: part/templates/part/detail.html:71 part/templates/part/part_base.html:76
+#: part/templates/part/detail.html:88 part/templates/part/part_base.html:76
msgid "Order part"
msgstr "Zamów część"
@@ -2735,34 +2824,34 @@ msgstr "Część wewnętrzna"
#: company/templates/company/manufacturer_part.html:114
#: company/templates/company/supplier_part.html:15 company/views.py:49
-#: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163
+#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:163
#: templates/InvenTree/search.html:188 templates/navbar.html:45
msgid "Suppliers"
msgstr "Dostawcy"
#: company/templates/company/manufacturer_part.html:129
-#: part/templates/part/detail.html:347
+#: part/templates/part/detail.html:364
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
#: company/templates/company/manufacturer_part.html:158
#: company/templates/company/manufacturer_part.html:254
-#: part/templates/part/detail.html:347 part/templates/part/detail.html:376
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:393
#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31
-#: users/models.py:210
+#: users/models.py:212
msgid "Delete"
msgstr "Usuń"
#: company/templates/company/manufacturer_part.html:143
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:17
-#: part/templates/part/detail.html:170 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:187 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr "Parametry"
#: company/templates/company/manufacturer_part.html:147
-#: part/templates/part/detail.html:175
+#: part/templates/part/detail.html:192
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
@@ -2773,7 +2862,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:191
-#: part/templates/part/detail.html:862
+#: part/templates/part/detail.html:892
msgid "Add Parameter"
msgstr "Dodaj parametr"
@@ -2802,9 +2891,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:477
+#: company/templates/company/supplier_part.html:24 stock/models.py:479
#: stock/templates/stock/item_base.html:402
-#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1748
+#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1756
msgid "Supplier Part"
msgstr ""
@@ -2830,7 +2919,7 @@ msgstr "Utwórz nowy towar"
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:167
-#: templates/js/translated/stock.js:360
+#: templates/js/translated/stock.js:368
msgid "New Stock Item"
msgstr "Nowy towar"
@@ -2840,7 +2929,7 @@ msgid "Supplier Part Orders"
msgstr ""
#: company/templates/company/supplier_part.html:160
-#: part/templates/part/detail.html:72
+#: part/templates/part/detail.html:89
msgid "Order Part"
msgstr ""
@@ -2851,7 +2940,7 @@ msgstr "Informacja cenowa"
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1619
+#: part/templates/part/prices.html:271 part/views.py:1628
msgid "Add Price Break"
msgstr ""
@@ -2859,11 +2948,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1681
+#: company/templates/company/supplier_part.html:224 part/views.py:1690
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1667
+#: company/templates/company/supplier_part.html:238 part/views.py:1676
msgid "Edit Price Break"
msgstr "Edytuj przedział cenowy"
@@ -2881,10 +2970,10 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:150
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/bom.js:328 templates/js/translated/part.js:489
-#: templates/js/translated/part.js:624 templates/js/translated/part.js:1118
-#: templates/js/translated/part.js:1279 templates/js/translated/stock.js:927
-#: templates/js/translated/stock.js:1580 templates/navbar.html:28
+#: templates/js/translated/bom.js:340 templates/js/translated/part.js:495
+#: templates/js/translated/part.js:630 templates/js/translated/part.js:1125
+#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:935
+#: templates/js/translated/stock.js:1588 templates/navbar.html:28
msgid "Stock"
msgstr "Stan"
@@ -2907,8 +2996,8 @@ msgstr "Cennik"
#: stock/templates/stock/location.html:151
#: stock/templates/stock/location.html:163
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2351
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2509
+#: templates/stats.html:105 templates/stats.html:114 users/models.py:43
msgid "Stock Items"
msgstr "Towary"
@@ -2937,20 +3026,20 @@ msgstr "Firmy"
msgid "New Company"
msgstr "Nowa firma"
-#: company/views.py:129 part/views.py:584
+#: company/views.py:129 part/views.py:593
msgid "Download Image"
msgstr "Pobierz obraz"
-#: company/views.py:158 part/views.py:616
+#: company/views.py:158 part/views.py:625
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:623
+#: company/views.py:165 part/views.py:632
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:632
+#: company/views.py:174 part/views.py:641
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3036,282 +3125,282 @@ msgstr "Oznacz zamówienie jako zakończone"
msgid "Cancel order"
msgstr "Anuluj zamówienie"
-#: order/models.py:122
+#: order/models.py:125
msgid "Order description"
msgstr "Opis Zamówienia"
-#: order/models.py:124
+#: order/models.py:127
msgid "Link to external page"
msgstr "Link do zewnętrznej witryny"
-#: order/models.py:132
+#: order/models.py:135
msgid "Created By"
msgstr "Utworzony przez"
-#: order/models.py:139
+#: order/models.py:142
msgid "User or group responsible for this order"
msgstr "Użytkownik lub grupa odpowiedzialna za to zamówienie"
-#: order/models.py:144
+#: order/models.py:147
msgid "Order notes"
msgstr "Notatki do zamówienia"
-#: order/models.py:211 order/models.py:537
+#: order/models.py:214 order/models.py:542
msgid "Order reference"
msgstr "Odniesienie zamówienia"
-#: order/models.py:216 order/models.py:552
+#: order/models.py:219 order/models.py:557
msgid "Purchase order status"
msgstr "Status zamówienia zakupu"
-#: order/models.py:225
+#: order/models.py:228
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:228 order/templates/order/order_base.html:118
+#: order/models.py:231 order/templates/order/order_base.html:118
#: templates/js/translated/order.js:832
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:228
+#: order/models.py:231
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:235
+#: order/models.py:238
msgid "received by"
msgstr "odebrane przez"
-#: order/models.py:240
+#: order/models.py:243
msgid "Issue Date"
msgstr "Data wydania"
-#: order/models.py:241
+#: order/models.py:244
msgid "Date order was issued"
msgstr "Data wystawienia zamówienia"
-#: order/models.py:246
+#: order/models.py:249
msgid "Target Delivery Date"
msgstr "Data Dostawy Towaru"
-#: order/models.py:247
+#: order/models.py:250
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:253
+#: order/models.py:256
msgid "Date order was completed"
msgstr ""
-#: order/models.py:282
+#: order/models.py:285
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:411
-msgid "Quantity must be an integer"
-msgstr "Wartość musi być liczbą całkowitą"
-
-#: order/models.py:415
+#: order/models.py:420
msgid "Quantity must be a positive number"
msgstr "Wartość musi być liczbą dodatnią"
-#: order/models.py:548
+#: order/models.py:553
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:554
+#: order/models.py:559
msgid "Customer Reference "
msgstr ""
-#: order/models.py:554
+#: order/models.py:559
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:559
+#: order/models.py:564
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:562 order/models.py:1028
+#: order/models.py:567 order/models.py:1048
#: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429
msgid "Shipment Date"
msgstr "Data wysyłki"
-#: order/models.py:569
+#: order/models.py:574
msgid "shipped by"
msgstr "wysłane przez"
-#: order/models.py:635
+#: order/models.py:640
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:639
+#: order/models.py:644
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:642
+#: order/models.py:647
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:645
+#: order/models.py:650
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:797
+#: order/models.py:806
msgid "Item quantity"
msgstr "Ilość elementów"
-#: order/models.py:803
+#: order/models.py:812
msgid "Line item reference"
msgstr ""
-#: order/models.py:805
+#: order/models.py:814
msgid "Line item notes"
msgstr ""
-#: order/models.py:835 order/models.py:926 order/models.py:1022
-#: templates/js/translated/order.js:1820
+#: order/models.py:842
+msgid "Supplier part must match supplier"
+msgstr ""
+
+#: order/models.py:855 order/models.py:946 order/models.py:1042
+#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2271
msgid "Order"
msgstr "Zamówienie"
-#: order/models.py:836 order/templates/order/order_base.html:9
+#: order/models.py:856 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:352
-#: templates/js/translated/order.js:801 templates/js/translated/part.js:832
-#: templates/js/translated/stock.js:1725 templates/js/translated/stock.js:2433
+#: templates/js/translated/order.js:801 templates/js/translated/part.js:838
+#: templates/js/translated/stock.js:1733 templates/js/translated/stock.js:2591
msgid "Purchase Order"
msgstr "Zlecenie zakupu"
-#: order/models.py:857
+#: order/models.py:877
msgid "Supplier part"
msgstr ""
-#: order/models.py:864 order/templates/order/order_base.html:163
+#: order/models.py:884 order/templates/order/order_base.html:163
#: templates/js/translated/order.js:589 templates/js/translated/order.js:1118
-#: templates/js/translated/part.js:904 templates/js/translated/part.js:930
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:937
#: templates/js/translated/table_filters.js:317
msgid "Received"
msgstr "Odebrane"
-#: order/models.py:865
+#: order/models.py:885
msgid "Number of items received"
msgstr ""
-#: order/models.py:872 part/templates/part/prices.html:176 stock/models.py:606
+#: order/models.py:892 part/templates/part/prices.html:176 stock/models.py:608
#: stock/serializers.py:170 stock/templates/stock/item_base.html:359
-#: templates/js/translated/stock.js:1779
+#: templates/js/translated/stock.js:1787
msgid "Purchase Price"
msgstr "Cena zakupu"
-#: order/models.py:873
+#: order/models.py:893
msgid "Unit purchase price"
msgstr "Cena zakupu jednostkowego"
-#: order/models.py:881
+#: order/models.py:901
msgid "Where does the Purchaser want this item to be stored?"
msgstr "Gdzie kupujący chce przechowywać ten przedmiot?"
-#: order/models.py:936 part/templates/part/part_pricing.html:112
+#: order/models.py:956 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr "Cena sprzedaży"
-#: order/models.py:937
+#: order/models.py:957
msgid "Unit sale price"
msgstr "Jednostkowa cena sprzedaży"
-#: order/models.py:942
+#: order/models.py:962
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1029
+#: order/models.py:1049
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1036
+#: order/models.py:1056
msgid "Checked By"
msgstr ""
-#: order/models.py:1037
+#: order/models.py:1057
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1045
+#: order/models.py:1065
msgid "Shipment number"
msgstr ""
-#: order/models.py:1052
+#: order/models.py:1072
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1059
+#: order/models.py:1079
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1060
+#: order/models.py:1080
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1070
+#: order/models.py:1090
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1073
+#: order/models.py:1093
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1149 order/models.py:1151
+#: order/models.py:1171 order/models.py:1173
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1155
+#: order/models.py:1177
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1157
+#: order/models.py:1179
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1160
+#: order/models.py:1182
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Zarezerwowana ilość nie może przekraczać ilości na stanie"
-#: order/models.py:1164
+#: order/models.py:1186
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:1170 order/serializers.py:734
+#: order/models.py:1192 order/serializers.py:740
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1173
+#: order/models.py:1195
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1174
+#: order/models.py:1196
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1182
+#: order/models.py:1204
msgid "Line"
msgstr "Linia"
-#: order/models.py:1190 order/serializers.py:825 order/serializers.py:953
-#: templates/js/translated/model_renderers.js:251
+#: order/models.py:1212 order/serializers.py:831 order/serializers.py:959
+#: templates/js/translated/model_renderers.js:285
msgid "Shipment"
msgstr ""
-#: order/models.py:1191
+#: order/models.py:1213
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1203
+#: order/models.py:1225
msgid "Item"
msgstr "Komponent"
-#: order/models.py:1204
+#: order/models.py:1226
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1207
+#: order/models.py:1229
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3319,7 +3408,7 @@ msgstr ""
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:211 order/serializers.py:790
+#: order/serializers.py:211 order/serializers.py:796
msgid "Line Item"
msgstr ""
@@ -3355,39 +3444,39 @@ msgstr ""
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:581
+#: order/serializers.py:587
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:649
+#: order/serializers.py:655
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:699 order/serializers.py:802
+#: order/serializers.py:705 order/serializers.py:808
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:721
+#: order/serializers.py:727
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:815
+#: order/serializers.py:821
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:839 order/serializers.py:964
+#: order/serializers.py:845 order/serializers.py:970
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:842 order/serializers.py:967
+#: order/serializers.py:848 order/serializers.py:973
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:894
+#: order/serializers.py:900
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:904
+#: order/serializers.py:910
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3441,6 +3530,7 @@ msgstr ""
#: order/templates/order/order_base.html:94
#: order/templates/order/sales_order_base.html:89
+#: templates/js/translated/stock.js:2327
msgid "Order Status"
msgstr "Status zamówienia"
@@ -3538,7 +3628,7 @@ msgstr ""
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/build.js:300 templates/js/translated/build.js:1311
#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488
-#: templates/js/translated/stock.js:593 templates/js/translated/stock.js:761
+#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769
msgid "Remove row"
msgstr ""
@@ -3729,7 +3819,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:48
-#: templates/js/translated/bom.js:720 templates/js/translated/build.js:1243
+#: templates/js/translated/bom.js:732 templates/js/translated/build.js:1243
msgid "Actions"
msgstr "Akcje"
@@ -3832,447 +3922,448 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:125 part/models.py:81 part/models.py:847
+#: part/bom.py:125 part/models.py:83 part/models.py:849
#: part/templates/part/category.html:108 part/templates/part/part_base.html:338
msgid "Default Location"
msgstr "Domyślna lokalizacja"
-#: part/bom.py:126 part/templates/part/part_base.html:185
+#: part/bom.py:126 templates/email/low_stock_notification.html:17
+msgid "Total Stock"
+msgstr ""
+
+#: part/bom.py:127 part/templates/part/part_base.html:185
msgid "Available Stock"
msgstr "Dostępna ilość"
-#: part/forms.py:85
+#: part/bom.py:128 part/templates/part/part_base.html:203
+#: templates/js/translated/part.js:1301
+msgid "On Order"
+msgstr ""
+
+#: part/forms.py:84
msgid "Select part category"
msgstr "Wybierz kategorię części"
-#: part/forms.py:122
+#: part/forms.py:121
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:126
+#: part/forms.py:125
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:146
+#: part/forms.py:145
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:82
+#: part/models.py:84
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:85
+#: part/models.py:87
msgid "Default keywords"
msgstr "Domyślne słowa kluczowe"
-#: part/models.py:85
+#: part/models.py:87
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:95 part/models.py:2526 part/templates/part/category.html:15
+#: part/models.py:97 part/models.py:2533 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:96 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/stats.html:84
+#: part/models.py:98 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/stats.html:96
#: users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:358 part/templates/part/cat_link.html:3
+#: part/models.py:360 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:17 part/templates/part/category.html:133
#: part/templates/part/category.html:153
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:37
-#: templates/js/translated/part.js:1656 templates/navbar.html:21
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+#: templates/js/translated/part.js:1663 templates/navbar.html:21
+#: templates/stats.html:92 templates/stats.html:101 users/models.py:41
msgid "Parts"
msgstr "Części"
-#: part/models.py:450
+#: part/models.py:452
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:500 part/models.py:512
+#: part/models.py:502 part/models.py:514
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:642
+#: part/models.py:644
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:646
+#: part/models.py:648
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:651
+#: part/models.py:653
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:746
+#: part/models.py:748
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:771
+#: part/models.py:773
msgid "Part name"
msgstr "Nazwa części"
-#: part/models.py:778
+#: part/models.py:780
msgid "Is Template"
msgstr ""
-#: part/models.py:779
+#: part/models.py:781
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:789
+#: part/models.py:791
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:790
+#: part/models.py:792
msgid "Variant Of"
msgstr "Wariant"
-#: part/models.py:796
+#: part/models.py:798
msgid "Part description"
msgstr "Opis części"
-#: part/models.py:801 part/templates/part/category.html:86
+#: part/models.py:803 part/templates/part/category.html:86
#: part/templates/part/part_base.html:302
msgid "Keywords"
msgstr "Słowa kluczowe"
-#: part/models.py:802
+#: part/models.py:804
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:809 part/models.py:2276 part/models.py:2525
+#: part/models.py:811 part/models.py:2283 part/models.py:2532
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:183
-#: templates/js/translated/part.js:1261
+#: templates/InvenTree/settings/settings.html:186
+#: templates/js/translated/part.js:1268
msgid "Category"
msgstr "Kategoria"
-#: part/models.py:810
+#: part/models.py:812
msgid "Part category"
msgstr ""
-#: part/models.py:815 part/templates/part/part_base.html:274
-#: templates/js/translated/part.js:612 templates/js/translated/part.js:1214
-#: templates/js/translated/stock.js:1552
+#: part/models.py:817 part/templates/part/part_base.html:274
+#: templates/js/translated/part.js:618 templates/js/translated/part.js:1221
+#: templates/js/translated/stock.js:1560
msgid "IPN"
msgstr "IPN"
-#: part/models.py:816
+#: part/models.py:818
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:822
+#: part/models.py:824
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:823 part/templates/part/part_base.html:281
-#: report/models.py:200 templates/js/translated/part.js:616
+#: part/models.py:825 part/templates/part/part_base.html:281
+#: report/models.py:200 templates/js/translated/part.js:622
msgid "Revision"
msgstr "Wersja"
-#: part/models.py:845
+#: part/models.py:847
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:892 part/templates/part/part_base.html:347
+#: part/models.py:894 part/templates/part/part_base.html:347
msgid "Default Supplier"
msgstr ""
-#: part/models.py:893
+#: part/models.py:895
msgid "Default supplier part"
msgstr ""
-#: part/models.py:900
+#: part/models.py:902
msgid "Default Expiry"
msgstr ""
-#: part/models.py:901
+#: part/models.py:903
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:906 part/templates/part/part_base.html:196
+#: part/models.py:908 part/templates/part/part_base.html:196
msgid "Minimum Stock"
msgstr "Minimalny stan magazynowy"
-#: part/models.py:907
+#: part/models.py:909
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:914
+#: part/models.py:916
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:920
+#: part/models.py:922
msgid "Can this part be built from other parts?"
msgstr "Czy ta część może być zbudowana z innych części?"
-#: part/models.py:926
+#: part/models.py:928
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:932
+#: part/models.py:934
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:937
+#: part/models.py:939
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:942
+#: part/models.py:944
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:946 plugin/models.py:46
-#: templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:96
-#: templates/js/translated/table_filters.js:295
-#: templates/js/translated/table_filters.js:417
-msgid "Active"
-msgstr "Aktywny"
-
-#: part/models.py:947
+#: part/models.py:949
msgid "Is this part active?"
msgstr "Czy ta część jest aktywna?"
-#: part/models.py:952
+#: part/models.py:954
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:957
+#: part/models.py:959
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:960
+#: part/models.py:962
msgid "BOM checksum"
msgstr ""
-#: part/models.py:960
+#: part/models.py:962
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:963
+#: part/models.py:965
msgid "BOM checked by"
msgstr ""
-#: part/models.py:965
+#: part/models.py:967
msgid "BOM checked date"
msgstr ""
-#: part/models.py:969
+#: part/models.py:971
msgid "Creation User"
msgstr ""
-#: part/models.py:1781
+#: part/models.py:1783
msgid "Sell multiple"
msgstr "Sprzedaj wiele"
-#: part/models.py:2326
+#: part/models.py:2333
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2343
+#: part/models.py:2350
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2363 templates/js/translated/part.js:1707
-#: templates/js/translated/stock.js:1276
+#: part/models.py:2370 templates/js/translated/part.js:1714
+#: templates/js/translated/stock.js:1284
msgid "Test Name"
msgstr "Nazwa testu"
-#: part/models.py:2364
+#: part/models.py:2371
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2376
msgid "Test Description"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2377
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2375 templates/js/translated/part.js:1716
+#: part/models.py:2382 templates/js/translated/part.js:1723
#: templates/js/translated/table_filters.js:281
msgid "Required"
msgstr "Wymagane"
-#: part/models.py:2376
+#: part/models.py:2383
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2381 templates/js/translated/part.js:1724
+#: part/models.py:2388 templates/js/translated/part.js:1731
msgid "Requires Value"
msgstr ""
-#: part/models.py:2382
+#: part/models.py:2389
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2387 templates/js/translated/part.js:1731
+#: part/models.py:2394 templates/js/translated/part.js:1738
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2388
+#: part/models.py:2395
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2399
+#: part/models.py:2406
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2435
+#: part/models.py:2442
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2443
+#: part/models.py:2450
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2450
+#: part/models.py:2457
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2480
+#: part/models.py:2487
msgid "Parent Part"
msgstr "Część nadrzędna"
-#: part/models.py:2482 part/models.py:2531 part/models.py:2532
-#: templates/InvenTree/settings/settings.html:178
+#: part/models.py:2489 part/models.py:2538 part/models.py:2539
+#: templates/InvenTree/settings/settings.html:181
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2484
+#: part/models.py:2491
msgid "Data"
msgstr "Dane"
-#: part/models.py:2484
+#: part/models.py:2491
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2536 templates/InvenTree/settings/settings.html:187
+#: part/models.py:2543 templates/InvenTree/settings/settings.html:190
msgid "Default Value"
msgstr "Wartość domyślna"
-#: part/models.py:2537
+#: part/models.py:2544
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2614
+#: part/models.py:2621
msgid "Select parent part"
msgstr "Wybierz część nadrzędną"
-#: part/models.py:2622
+#: part/models.py:2629
msgid "Sub part"
msgstr "Podczęść"
-#: part/models.py:2623
+#: part/models.py:2630
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2629
+#: part/models.py:2636
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2631 templates/js/translated/bom.js:566
-#: templates/js/translated/bom.js:640
+#: part/models.py:2638 templates/js/translated/bom.js:578
+#: templates/js/translated/bom.js:652
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2638
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2634
+#: part/models.py:2641
msgid "Overage"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2642
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2638
+#: part/models.py:2645
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2641
+#: part/models.py:2648
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2643
+#: part/models.py:2650
msgid "Checksum"
msgstr "Suma kontrolna"
-#: part/models.py:2643
+#: part/models.py:2650
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2647 templates/js/translated/bom.js:657
+#: part/models.py:2654 templates/js/translated/bom.js:669
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2648
+#: part/models.py:2655
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2653 templates/js/translated/bom.js:649
+#: part/models.py:2660 templates/js/translated/bom.js:661
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2654
+#: part/models.py:2661
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2739 stock/models.py:355
+#: part/models.py:2746 stock/models.py:357
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2748 part/models.py:2750
+#: part/models.py:2755 part/models.py:2757
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2879
+#: part/models.py:2886
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2908
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2920
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2928
msgid "Substitute part"
msgstr ""
-#: part/models.py:2932
+#: part/models.py:2939
msgid "Part 1"
msgstr "Część 1"
-#: part/models.py:2936
+#: part/models.py:2943
msgid "Part 2"
msgstr "Część 2"
-#: part/models.py:2936
+#: part/models.py:2943
msgid "Select Related Part"
msgstr "Wybierz powiązaną część"
-#: part/models.py:2968
+#: part/models.py:2975
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4327,7 +4418,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:253
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:270
msgid "BOM actions"
msgstr ""
@@ -4499,7 +4590,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:348
msgid "Duplicate Part"
msgstr "Duplikuj część"
@@ -4533,145 +4624,149 @@ msgid "Showing stock for all variants of %(full_name)s"
msgstr ""
#: part/templates/part/detail.html:43
+msgid "Part Stock Allocations"
+msgstr ""
+
+#: part/templates/part/detail.html:60
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:48
+#: part/templates/part/detail.html:65
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:105
+#: part/templates/part/detail.html:122
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:142
+#: part/templates/part/detail.html:159
msgid "Part Variants"
msgstr "Warianty Części"
-#: part/templates/part/detail.html:146
+#: part/templates/part/detail.html:163
msgid "Create new variant"
msgstr "Utwórz nowy wariant"
-#: part/templates/part/detail.html:147
+#: part/templates/part/detail.html:164
msgid "New Variant"
msgstr "Nowy wariant"
-#: part/templates/part/detail.html:174
+#: part/templates/part/detail.html:191
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:45
+#: part/templates/part/detail.html:228 part/templates/part/part_sidebar.html:49
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:215 part/templates/part/detail.html:216
+#: part/templates/part/detail.html:232 part/templates/part/detail.html:233
msgid "Add Related"
msgstr "Dodaj powiązane"
-#: part/templates/part/detail.html:236 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:253 part/templates/part/part_sidebar.html:17
msgid "Bill of Materials"
msgstr "Zestawienie materiałowe"
-#: part/templates/part/detail.html:241
+#: part/templates/part/detail.html:258
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:245 templates/js/translated/bom.js:70
+#: part/templates/part/detail.html:262 templates/js/translated/bom.js:70
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:247
+#: part/templates/part/detail.html:264
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:257
+#: part/templates/part/detail.html:274
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:259 templates/js/translated/part.js:272
+#: part/templates/part/detail.html:276 templates/js/translated/part.js:272
msgid "Copy BOM"
msgstr "Kopiuj BOM"
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:278
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:266
+#: part/templates/part/detail.html:283
msgid "New BOM Item"
msgstr ""
-#: part/templates/part/detail.html:267
+#: part/templates/part/detail.html:284
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:280
+#: part/templates/part/detail.html:297
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:297
+#: part/templates/part/detail.html:314
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:322
+#: part/templates/part/detail.html:339
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:332
+#: part/templates/part/detail.html:349
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:360
+#: part/templates/part/detail.html:377
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:393
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:558
+#: part/templates/part/detail.html:575
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:559
+#: part/templates/part/detail.html:576
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:608
+#: part/templates/part/detail.html:625
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:652
+#: part/templates/part/detail.html:682
msgid "Related Part"
msgstr "Powiązane części"
-#: part/templates/part/detail.html:660
+#: part/templates/part/detail.html:690
msgid "Add Related Part"
msgstr "Dodaj powiązaną część"
-#: part/templates/part/detail.html:755
+#: part/templates/part/detail.html:785
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:812
+#: part/templates/part/detail.html:842
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:925
+#: part/templates/part/detail.html:955
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:937
+#: part/templates/part/detail.html:967
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:949
+#: part/templates/part/detail.html:979
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1038
+#: part/templates/part/detail.html:1068
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4786,7 +4881,7 @@ msgstr "Część jest wirtualna (nie fizyczna)"
#: templates/js/translated/company.js:508
#: templates/js/translated/company.js:765
#: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:527 templates/js/translated/part.js:604
+#: templates/js/translated/part.js:533 templates/js/translated/part.js:610
msgid "Inactive"
msgstr "Nieaktywny"
@@ -4805,10 +4900,6 @@ msgstr ""
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1294
-msgid "On Order"
-msgstr ""
-
#: part/templates/part/part_base.html:210 templates/InvenTree/index.html:178
msgid "Required for Build Orders"
msgstr ""
@@ -4821,12 +4912,12 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:678
+#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:690
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1125
-#: templates/js/translated/part.js:1298
+#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1132
+#: templates/js/translated/part.js:1305
msgid "Building"
msgstr ""
@@ -4878,7 +4969,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:632
+#: templates/js/translated/bom.js:644
msgid "No supplier pricing available"
msgstr ""
@@ -4920,7 +5011,12 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/templates/part/part_sidebar.html:41
+#: part/templates/part/part_sidebar.html:31
+#: stock/templates/stock/stock_sidebar.html:8
+msgid "Allocations"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:45
msgid "Test Templates"
msgstr ""
@@ -4993,7 +5089,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:626
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:638
msgid "Supplier Cost"
msgstr ""
@@ -5015,7 +5111,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1690
+#: part/templates/part/prices.html:215 part/views.py:1699
msgid "Add Internal Price Break"
msgstr ""
@@ -5035,9 +5131,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:588
-#: templates/js/translated/part.js:491 templates/js/translated/part.js:1115
-#: templates/js/translated/part.js:1302
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:600
+#: templates/js/translated/part.js:497 templates/js/translated/part.js:1122
+#: templates/js/translated/part.js:1309
msgid "No Stock"
msgstr "Brak w magazynie"
@@ -5054,116 +5150,116 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:116
+#: part/templatetags/inventree_extras.py:125
msgid "Unknown database"
msgstr ""
-#: part/views.py:92
+#: part/views.py:93
msgid "Set Part Category"
msgstr ""
-#: part/views.py:142
+#: part/views.py:143
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:214
+#: part/views.py:215
msgid "Match References"
msgstr ""
-#: part/views.py:502
+#: part/views.py:511
msgid "None"
msgstr ""
-#: part/views.py:561
+#: part/views.py:570
msgid "Part QR Code"
msgstr ""
-#: part/views.py:663
+#: part/views.py:672
msgid "Select Part Image"
msgstr ""
-#: part/views.py:689
+#: part/views.py:698
msgid "Updated part image"
msgstr ""
-#: part/views.py:692
+#: part/views.py:701
msgid "Part image not found"
msgstr ""
-#: part/views.py:766
+#: part/views.py:775
msgid "Match Parts"
msgstr ""
-#: part/views.py:1101
+#: part/views.py:1110
msgid "Export Bill of Materials"
msgstr ""
-#: part/views.py:1150
+#: part/views.py:1159
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1157
+#: part/views.py:1166
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1166
+#: part/views.py:1175
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1315
+#: part/views.py:1324
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1325
+#: part/views.py:1334
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1332
+#: part/views.py:1341
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1391 templates/js/translated/part.js:315
+#: part/views.py:1400 templates/js/translated/part.js:315
msgid "Edit Part Category"
msgstr "Edytuj kategorię części"
-#: part/views.py:1429
+#: part/views.py:1438
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1435
+#: part/views.py:1444
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1444
+#: part/views.py:1453
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1545
+#: part/views.py:1554
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1601
+#: part/views.py:1610
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1623
+#: part/views.py:1632
msgid "Added new price break"
msgstr ""
-#: part/views.py:1699
+#: part/views.py:1708
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1707
+#: part/views.py:1716
msgid "Delete Internal Price Break"
msgstr ""
-#: plugin/integration.py:124
+#: plugin/integration.py:138
msgid "No author found"
msgstr ""
-#: plugin/integration.py:136
+#: plugin/integration.py:152
msgid "No date found"
msgstr ""
@@ -5191,7 +5287,7 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:195
+#: plugin/models.py:199
msgid "Plugin"
msgstr ""
@@ -5357,12 +5453,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:517 stock/templates/stock/item_base.html:156
+#: stock/models.py:519 stock/templates/stock/item_base.html:156
#: templates/js/translated/build.js:293 templates/js/translated/build.js:697
#: templates/js/translated/build.js:1073
#: templates/js/translated/model_renderers.js:95
#: templates/js/translated/order.js:99 templates/js/translated/order.js:1945
-#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:415
+#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:423
msgid "Serial Number"
msgstr "Numer Seryjny"
@@ -5371,19 +5467,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:1948
+#: stock/models.py:1976
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:1954
+#: stock/models.py:1982
msgid "Result"
msgstr "Wynik"
#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:49
+#: templates/InvenTree/settings/plugin.html:50
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2367
+#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2525
msgid "Date"
msgstr "Data"
@@ -5396,23 +5492,27 @@ msgid "Fail"
msgstr "Niezaliczone"
#: report/templates/report/inventree_test_report_base.html:123
-#: stock/templates/stock/stock_sidebar.html:12
+#: stock/templates/stock/stock_sidebar.html:16
msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:578 templates/js/translated/stock.js:748
-#: templates/js/translated/stock.js:2627
+#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756
+#: templates/js/translated/stock.js:2785
msgid "Serial"
msgstr ""
-#: stock/api.py:478
+#: stock/api.py:476
msgid "Quantity is required"
msgstr ""
-#: stock/forms.py:77 stock/forms.py:251 stock/models.py:574
+#: stock/api.py:483
+msgid "Valid part must be supplied"
+msgstr ""
+
+#: stock/forms.py:77 stock/forms.py:251 stock/models.py:576
#: stock/templates/stock/item_base.html:193
-#: templates/js/translated/stock.js:1701
+#: templates/js/translated/stock.js:1709
msgid "Expiry Date"
msgstr "Data ważności"
@@ -5460,228 +5560,228 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:60 stock/models.py:611
+#: stock/models.py:62 stock/models.py:613
#: stock/templates/stock/item_base.html:416
msgid "Owner"
msgstr ""
-#: stock/models.py:61 stock/models.py:612
+#: stock/models.py:63 stock/models.py:614
msgid "Select Owner"
msgstr ""
-#: stock/models.py:336
+#: stock/models.py:338
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:372
+#: stock/models.py:374
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:382 stock/models.py:391
+#: stock/models.py:384 stock/models.py:393
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:383
+#: stock/models.py:385
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:405
+#: stock/models.py:407
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:413
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:418
+#: stock/models.py:420
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:461
+#: stock/models.py:463
msgid "Parent Stock Item"
msgstr "Nadrzędny towar"
-#: stock/models.py:470
+#: stock/models.py:472
msgid "Base part"
msgstr "Część podstawowa"
-#: stock/models.py:478
+#: stock/models.py:480
msgid "Select a matching supplier part for this stock item"
msgstr "Wybierz pasującą część dostawcy dla tego towaru"
-#: stock/models.py:484 stock/templates/stock/location.html:16
+#: stock/models.py:486 stock/templates/stock/location.html:16
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:487
+#: stock/models.py:489
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:494
+#: stock/models.py:496
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:500 stock/templates/stock/item_base.html:298
+#: stock/models.py:502 stock/templates/stock/item_base.html:298
msgid "Installed In"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:505
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:521
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:535
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:537
+#: stock/models.py:539
msgid "Stock Quantity"
msgstr "Ilość w magazynie"
-#: stock/models.py:546
+#: stock/models.py:548
msgid "Source Build"
msgstr ""
-#: stock/models.py:548
+#: stock/models.py:550
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:559
+#: stock/models.py:561
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:562
+#: stock/models.py:564
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:568
+#: stock/models.py:570
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:575
+#: stock/models.py:577
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:588
+#: stock/models.py:590
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:588
+#: stock/models.py:590
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:598 stock/templates/stock/item.html:111
+#: stock/models.py:600 stock/templates/stock/item.html:128
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:607
+#: stock/models.py:609
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1068
+#: stock/models.py:1096
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1074
+#: stock/models.py:1102
msgid "Quantity must be integer"
msgstr "Ilość musi być liczbą całkowitą"
-#: stock/models.py:1080
+#: stock/models.py:1108
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr "Ilość nie może przekraczać dostępnej ilości towaru ({n})"
-#: stock/models.py:1083
+#: stock/models.py:1111
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1086
+#: stock/models.py:1114
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1093
+#: stock/models.py:1121
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1164
+#: stock/models.py:1192
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1167
+#: stock/models.py:1195
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1170
+#: stock/models.py:1198
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1173
+#: stock/models.py:1201
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1176
+#: stock/models.py:1204
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1179
+#: stock/models.py:1207
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1186 stock/serializers.py:774
+#: stock/models.py:1214 stock/serializers.py:775
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1190
+#: stock/models.py:1218
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1194
+#: stock/models.py:1222
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1198
+#: stock/models.py:1226
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1369
+#: stock/models.py:1397
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1868
+#: stock/models.py:1896
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1925
+#: stock/models.py:1953
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1931
+#: stock/models.py:1959
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1949
+#: stock/models.py:1977
msgid "Test name"
msgstr ""
-#: stock/models.py:1955 templates/js/translated/table_filters.js:271
+#: stock/models.py:1983 templates/js/translated/table_filters.js:271
msgid "Test result"
msgstr ""
-#: stock/models.py:1961
+#: stock/models.py:1989
msgid "Test output value"
msgstr ""
-#: stock/models.py:1968
+#: stock/models.py:1996
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1974
+#: stock/models.py:2002
msgid "Test notes"
msgstr ""
@@ -5706,7 +5806,7 @@ msgstr ""
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:326 stock/serializers.py:731 stock/serializers.py:972
+#: stock/serializers.py:326 stock/serializers.py:732 stock/serializers.py:973
msgid "Destination stock location"
msgstr ""
@@ -5718,63 +5818,63 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:588
+#: stock/serializers.py:589
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:592
+#: stock/serializers.py:593
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:597
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:626
+#: stock/serializers.py:627
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:632
+#: stock/serializers.py:633
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:640
+#: stock/serializers.py:641
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:650 stock/serializers.py:880
+#: stock/serializers.py:651 stock/serializers.py:881
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:738
+#: stock/serializers.py:739
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:743
+#: stock/serializers.py:744
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:744
+#: stock/serializers.py:745
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:749
+#: stock/serializers.py:750
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:750
+#: stock/serializers.py:751
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:760
+#: stock/serializers.py:761
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:842
+#: stock/serializers.py:843
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:870
+#: stock/serializers.py:871
msgid "Stock transaction notes"
msgstr ""
@@ -5787,47 +5887,51 @@ msgid "New Entry"
msgstr ""
#: stock/templates/stock/item.html:48
-msgid "Child Stock Items"
-msgstr ""
-
-#: stock/templates/stock/item.html:55
-msgid "This stock item does not have any child items"
+msgid "Stock Item Allocations"
msgstr ""
#: stock/templates/stock/item.html:64
-#: stock/templates/stock/stock_sidebar.html:8
-msgid "Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:57
-msgid "Test Report"
+msgid "Child Stock Items"
msgstr ""
#: stock/templates/stock/item.html:72
+msgid "This stock item does not have any child items"
+msgstr ""
+
+#: stock/templates/stock/item.html:81
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:57
+msgid "Test Report"
+msgstr ""
+
+#: stock/templates/stock/item.html:89
msgid "Delete Test Data"
msgstr ""
-#: stock/templates/stock/item.html:76
+#: stock/templates/stock/item.html:93
msgid "Add Test Data"
msgstr ""
-#: stock/templates/stock/item.html:133
+#: stock/templates/stock/item.html:150
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:137 stock/views.py:482
+#: stock/templates/stock/item.html:154 stock/views.py:482
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304
+#: stock/templates/stock/item.html:309 stock/templates/stock/item.html:334
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:324
+#: stock/templates/stock/item.html:354
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:338
+#: stock/templates/stock/item.html:368
msgid "Delete Test Result"
msgstr ""
@@ -5952,7 +6056,7 @@ msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:206
-#: templates/js/translated/stock.js:1714
+#: templates/js/translated/stock.js:1722
msgid "Last Updated"
msgstr "Ostatnia aktualizacja"
@@ -6111,7 +6215,7 @@ msgid "Sublocations"
msgstr ""
#: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164
-#: templates/stats.html:97 users/models.py:42
+#: templates/stats.html:109 users/models.py:42
msgid "Stock Locations"
msgstr ""
@@ -6135,7 +6239,7 @@ msgstr ""
msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/stock_sidebar.html:16
+#: stock/templates/stock/stock_sidebar.html:20
msgid "Child Items"
msgstr ""
@@ -6164,7 +6268,7 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:162
+#: stock/views.py:162 templates/js/translated/stock.js:139
msgid "Edit Stock Location"
msgstr ""
@@ -6204,7 +6308,7 @@ msgstr ""
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:727 templates/js/translated/stock.js:1066
+#: stock/views.py:727 templates/js/translated/stock.js:1074
msgid "Confirm stock adjustment"
msgstr ""
@@ -6212,7 +6316,7 @@ msgstr ""
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:324
+#: stock/views.py:760 templates/js/translated/stock.js:332
msgid "Edit Stock Item"
msgstr ""
@@ -6224,7 +6328,7 @@ msgstr "Utwórz nową lokalizację magazynową"
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1153 templates/js/translated/stock.js:304
+#: stock/views.py:1153 templates/js/translated/stock.js:312
msgid "Duplicate Stock Item"
msgstr ""
@@ -6268,6 +6372,18 @@ msgstr ""
msgid "The requested page does not exist"
msgstr ""
+#: templates/500.html:5 templates/500.html:11
+msgid "Internal Server Error"
+msgstr ""
+
+#: templates/500.html:14
+msgid "The InvenTree server raised an internal error"
+msgstr ""
+
+#: templates/500.html:15
+msgid "Refer to the error log in the admin interface for further details"
+msgstr ""
+
#: templates/503.html:10 templates/503.html:35
msgid "Site is in Maintenance"
msgstr ""
@@ -6390,7 +6506,7 @@ msgid "Signup"
msgstr ""
#: templates/InvenTree/settings/mixins/settings.html:5
-#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:118
+#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113
msgid "Settings"
msgstr ""
@@ -6431,43 +6547,43 @@ msgstr ""
msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage."
msgstr ""
-#: templates/InvenTree/settings/plugin.html:32
+#: templates/InvenTree/settings/plugin.html:33
msgid "Plugins"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:37
+#: templates/InvenTree/settings/plugin.html:38
#: templates/js/translated/plugin.js:15
msgid "Install Plugin"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:46 templates/navbar.html:111
+#: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111
#: users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin.html:49
#: templates/InvenTree/settings/plugin_settings.html:28
msgid "Author"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:50
+#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin_settings.html:43
msgid "Version"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:91
+#: templates/InvenTree/settings/plugin.html:92
msgid "Inactive plugins"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:114
+#: templates/InvenTree/settings/plugin.html:115
msgid "Plugin Error Stack"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:123
+#: templates/InvenTree/settings/plugin.html:124
msgid "Stage"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:125
+#: templates/InvenTree/settings/plugin.html:126
msgid "Message"
msgstr ""
@@ -6555,37 +6671,37 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:75
+#: templates/InvenTree/settings/settings.html:78
msgid "Edit Plugin Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:77
+#: templates/InvenTree/settings/settings.html:80
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:79
+#: templates/InvenTree/settings/settings.html:82
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:168
+#: templates/InvenTree/settings/settings.html:171
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:190
-#: templates/InvenTree/settings/settings.html:289
+#: templates/InvenTree/settings/settings.html:193
+#: templates/InvenTree/settings/settings.html:292
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:191
-#: templates/InvenTree/settings/settings.html:290
+#: templates/InvenTree/settings/settings.html:194
+#: templates/InvenTree/settings/settings.html:293
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:269
+#: templates/InvenTree/settings/settings.html:272
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:273
+#: templates/InvenTree/settings/settings.html:276
msgid "ID"
msgstr ""
@@ -6763,124 +6879,105 @@ msgstr ""
msgid "Remove multifactor"
msgstr ""
-#: templates/InvenTree/settings/user.html:219
+#: templates/InvenTree/settings/user.html:220
+msgid "Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:226
+msgid "Log out active sessions (except this one)"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:227
+msgid "Log Out Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:236
+msgid "unknown on unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:237
+msgid "unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:241
+msgid "IP Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:242
+msgid "Device"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:243
+msgid "Last Activity"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:252
+#, python-format
+msgid "%(time)s ago (this session)"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:254
+#, python-format
+msgid "%(time)s ago"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:266
+msgid "Do you really want to remove the selected email address?"
+msgstr ""
+
#: templates/InvenTree/settings/user_display.html:25
msgid "Theme Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:227
#: templates/InvenTree/settings/user_display.html:35
msgid "Select theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:237
#: templates/InvenTree/settings/user_display.html:46
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:246
#: templates/InvenTree/settings/user_display.html:54
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:254
#: templates/InvenTree/settings/user_display.html:63
msgid "Select language"
msgstr ""
-#: templates/InvenTree/settings/user.html:270
#: templates/InvenTree/settings/user_display.html:79
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:272
#: templates/InvenTree/settings/user_display.html:81
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:279
#: templates/InvenTree/settings/user_display.html:88
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:281
#: templates/InvenTree/settings/user_display.html:91
msgid "Some languages are not complete"
msgstr ""
-#: templates/InvenTree/settings/user.html:283
#: templates/InvenTree/settings/user_display.html:93
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user.html:285
+#: templates/InvenTree/settings/user_display.html:95
+msgid "and hidden."
+msgstr ""
+
#: templates/InvenTree/settings/user_display.html:95
msgid "Show them too"
msgstr ""
-#: templates/InvenTree/settings/user.html:292
#: templates/InvenTree/settings/user_display.html:101
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user.html:293
-#, python-format
-msgid "Native language translation of the\n"
-" InvenTree web application is community contributed via crowdin. Contributions are\n"
-" welcomed and encouraged."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:302
-msgid "Active Sessions"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:308
-msgid "Log out active sessions (except this one)"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:309
-msgid "Log Out Active Sessions"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:318
-msgid "unknown on unknown"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:319
-msgid "unknown"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:323
-msgid "IP Address"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:324
-msgid "Device"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:325
-msgid "Last Activity"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:334
-#, python-format
-msgid "%(time)s ago (this session)"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:336
-#, python-format
-msgid "%(time)s ago"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:348
-msgid "Do you really want to remove the selected email address?"
-msgstr ""
-
-#: templates/InvenTree/settings/user_display.html:95
-msgid "and hidden."
-msgstr ""
-
#: templates/InvenTree/settings/user_display.html:102
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
@@ -6899,9 +6996,9 @@ msgid "InvenTree Version Information"
msgstr ""
#: templates/about.html:11 templates/about.html:105
-#: templates/js/translated/bom.js:395 templates/js/translated/modals.js:53
-#: templates/js/translated/modals.js:573 templates/js/translated/modals.js:667
-#: templates/js/translated/modals.js:970 templates/modals.html:15
+#: templates/js/translated/bom.js:407 templates/js/translated/modals.js:53
+#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
+#: templates/js/translated/modals.js:983 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -7178,13 +7275,13 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1103
+#: templates/js/translated/bom.js:1117
msgid "Required Quantity"
msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:579 templates/js/translated/build.js:1189
+#: templates/js/translated/bom.js:591 templates/js/translated/build.js:1189
#: templates/js/translated/build.js:1810
#: templates/js/translated/table_filters.js:178
msgid "Available"
@@ -7208,10 +7305,6 @@ msgstr ""
msgid "Click on the following link to view this part"
msgstr ""
-#: templates/email/low_stock_notification.html:17
-msgid "Total Stock"
-msgstr ""
-
#: templates/email/low_stock_notification.html:19
msgid "Minimum Quantity"
msgstr ""
@@ -7232,11 +7325,11 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1040
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1053
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1041
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1054
msgid "No response from the InvenTree server"
msgstr ""
@@ -7248,27 +7341,27 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1063
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1051
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1064
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1068
msgid "Error 403: Permission Denied"
msgstr "Błąd 403: Odmowa dostępu"
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1056
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1069
msgid "You do not have the required permissions to access this function"
msgstr "Nie masz uprawnień wymaganych do dostępu do tej funkcji"
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1073
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1061
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1074
msgid "The requested resource could not be located on the server"
msgstr ""
@@ -7280,11 +7373,11 @@ msgstr ""
msgid "HTTP method not allowed at URL"
msgstr ""
-#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1065
+#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1078
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1079
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -7353,7 +7446,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:140
-#: templates/js/translated/modals.js:1030
+#: templates/js/translated/modals.js:1043
msgid "Invalid server response"
msgstr ""
@@ -7381,7 +7474,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1018
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026
msgid "Remove stock item"
msgstr ""
@@ -7428,12 +7521,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73
-#: templates/js/translated/order.js:369 templates/js/translated/stock.js:510
+#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74
-#: templates/js/translated/order.js:370 templates/js/translated/stock.js:511
+#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519
msgid "Select file format"
msgstr ""
@@ -7489,87 +7582,87 @@ msgstr ""
msgid "Remove substitute part"
msgstr ""
-#: templates/js/translated/bom.js:340
-msgid "Select and add a new variant item using the input below"
+#: templates/js/translated/bom.js:352
+msgid "Select and add a new substitute part using the input below"
msgstr ""
-#: templates/js/translated/bom.js:351
+#: templates/js/translated/bom.js:363
msgid "Are you sure you wish to remove this substitute part link?"
msgstr ""
-#: templates/js/translated/bom.js:357
+#: templates/js/translated/bom.js:369
msgid "Remove Substitute Part"
msgstr ""
-#: templates/js/translated/bom.js:396
+#: templates/js/translated/bom.js:408
msgid "Add Substitute"
msgstr ""
-#: templates/js/translated/bom.js:397
+#: templates/js/translated/bom.js:409
msgid "Edit BOM Item Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:516
+#: templates/js/translated/bom.js:528
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:520 templates/js/translated/build.js:1171
+#: templates/js/translated/bom.js:532 templates/js/translated/build.js:1171
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:525
+#: templates/js/translated/bom.js:537
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:597
+#: templates/js/translated/bom.js:609
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:612
+#: templates/js/translated/bom.js:624
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:619
+#: templates/js/translated/bom.js:631
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:668 templates/js/translated/bom.js:757
+#: templates/js/translated/bom.js:680 templates/js/translated/bom.js:769
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:728
+#: templates/js/translated/bom.js:740
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:730
+#: templates/js/translated/bom.js:742
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:732
+#: templates/js/translated/bom.js:744
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:734 templates/js/translated/bom.js:908
+#: templates/js/translated/bom.js:746 templates/js/translated/bom.js:920
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:736 templates/js/translated/bom.js:891
+#: templates/js/translated/bom.js:748 templates/js/translated/bom.js:903
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:830 templates/js/translated/build.js:915
+#: templates/js/translated/bom.js:842 templates/js/translated/build.js:915
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:886
+#: templates/js/translated/bom.js:898
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:1086 templates/js/translated/build.js:1155
+#: templates/js/translated/bom.js:1100 templates/js/translated/build.js:1155
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1108
+#: templates/js/translated/bom.js:1122
msgid "Inherited from parent BOM"
msgstr ""
@@ -7725,9 +7818,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1206
-#: templates/js/translated/part.js:1617 templates/js/translated/stock.js:1512
-#: templates/js/translated/stock.js:2321
+#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1213
+#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1520
+#: templates/js/translated/stock.js:2479
msgid "Select"
msgstr ""
@@ -7735,7 +7828,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2540
+#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2698
msgid "No user information"
msgstr ""
@@ -7808,34 +7901,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:511
-#: templates/js/translated/part.js:596
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:517
+#: templates/js/translated/part.js:602
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:515
-#: templates/js/translated/part.js:600
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:521
+#: templates/js/translated/part.js:606
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:690
+#: templates/js/translated/company.js:631 templates/js/translated/part.js:696
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:732
+#: templates/js/translated/company.js:668 templates/js/translated/part.js:738
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:733
+#: templates/js/translated/company.js:669 templates/js/translated/part.js:739
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:750
+#: templates/js/translated/company.js:688 templates/js/translated/part.js:756
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:762
+#: templates/js/translated/company.js:699 templates/js/translated/part.js:768
msgid "Delete Parameter"
msgstr ""
@@ -7844,12 +7937,12 @@ msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:420
+#: templates/js/translated/filters.js:429
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:421
+#: templates/js/translated/filters.js:430
msgid "false"
msgstr ""
@@ -7869,7 +7962,7 @@ msgstr "Dodaj nowy filtr"
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:329
+#: templates/js/translated/filters.js:338
msgid "Create filter"
msgstr ""
@@ -7898,20 +7991,20 @@ msgstr ""
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1080 templates/modals.html:19
+#: templates/js/translated/forms.js:1082 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1471
+#: templates/js/translated/forms.js:1487
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1675
+#: templates/js/translated/forms.js:1691
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1895
+#: templates/js/translated/forms.js:1930
msgid "Clear input"
msgstr ""
@@ -7924,7 +8017,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1042
+#: templates/js/translated/stock.js:1050
msgid "Select Stock Items"
msgstr ""
@@ -7974,12 +8067,12 @@ msgid "Select Label Template"
msgstr ""
#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
-#: templates/js/translated/modals.js:599
+#: templates/js/translated/modals.js:610
msgid "Cancel"
msgstr ""
#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:666 templates/js/translated/modals.js:969
+#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:982
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
@@ -7988,47 +8081,47 @@ msgstr ""
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:381
+#: templates/js/translated/modals.js:392
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:540
+#: templates/js/translated/modals.js:551
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:598
+#: templates/js/translated/modals.js:609
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:655
+#: templates/js/translated/modals.js:666
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:921
+#: templates/js/translated/modals.js:934
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:921
+#: templates/js/translated/modals.js:934
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:946
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1030
+#: templates/js/translated/modals.js:1043
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1045
+#: templates/js/translated/modals.js:1058
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1046
+#: templates/js/translated/modals.js:1059
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1069
+#: templates/js/translated/modals.js:1082
msgid "Error requesting form data"
msgstr ""
@@ -8052,23 +8145,24 @@ msgstr ""
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:236
+#: templates/js/translated/model_renderers.js:249
+#: templates/js/translated/model_renderers.js:270
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:253
+#: templates/js/translated/model_renderers.js:287
msgid "Shipment ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:273
+#: templates/js/translated/model_renderers.js:307
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:310
+#: templates/js/translated/model_renderers.js:344
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:339
+#: templates/js/translated/model_renderers.js:373
msgid "Supplier Part ID"
msgstr ""
@@ -8116,7 +8210,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2123
+#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2131
msgid "Stock Status"
msgstr ""
@@ -8140,7 +8234,7 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:790 templates/js/translated/part.js:803
+#: templates/js/translated/order.js:790 templates/js/translated/part.js:809
msgid "No purchase orders found"
msgstr ""
@@ -8165,7 +8259,7 @@ msgid "Total"
msgstr ""
#: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163
-#: templates/js/translated/part.js:1834 templates/js/translated/part.js:2045
+#: templates/js/translated/part.js:1841 templates/js/translated/part.js:2052
msgid "Unit Price"
msgstr "Cena jednostkowa"
@@ -8181,7 +8275,7 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1166 templates/js/translated/part.js:935
+#: templates/js/translated/order.js:1166 templates/js/translated/part.js:942
msgid "Receive line item"
msgstr ""
@@ -8250,7 +8344,7 @@ msgid "Delete Stock Allocation"
msgstr ""
#: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048
-#: templates/js/translated/stock.js:1428
+#: templates/js/translated/stock.js:1436
msgid "Shipped to customer"
msgstr ""
@@ -8378,144 +8472,148 @@ msgstr ""
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:412
+#: templates/js/translated/part.js:351
+msgid "Create Part Variant"
+msgstr ""
+
+#: templates/js/translated/part.js:418
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:414
+#: templates/js/translated/part.js:420
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:419
+#: templates/js/translated/part.js:425
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:421
+#: templates/js/translated/part.js:427
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:438
+#: templates/js/translated/part.js:444
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:448
+#: templates/js/translated/part.js:454
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:451
+#: templates/js/translated/part.js:457
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:475
+#: templates/js/translated/part.js:481
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:503 templates/js/translated/part.js:588
+#: templates/js/translated/part.js:509 templates/js/translated/part.js:594
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:507 templates/js/translated/part.js:592
+#: templates/js/translated/part.js:513 templates/js/translated/part.js:598
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:519
+#: templates/js/translated/part.js:525
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:529
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:638
+#: templates/js/translated/part.js:644
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1005
+#: templates/js/translated/part.js:1012
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1029
+#: templates/js/translated/part.js:1036
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1096 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:1363
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1266
+#: templates/js/translated/part.js:1273
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1289
+#: templates/js/translated/part.js:1296
#: templates/js/translated/table_filters.js:430
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1380 templates/js/translated/part.js:1552
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559
+#: templates/js/translated/stock.js:2440
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1396
+#: templates/js/translated/part.js:1403
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1571 templates/js/translated/stock.js:2301
+#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2459
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1635
+#: templates/js/translated/part.js:1642
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1649 templates/js/translated/stock.js:2345
+#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2503
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1693
+#: templates/js/translated/part.js:1700
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1744 templates/js/translated/stock.js:1234
+#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1242
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1745 templates/js/translated/stock.js:1235
+#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1243
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1751
+#: templates/js/translated/part.js:1758
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1773
+#: templates/js/translated/part.js:1780
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1787
+#: templates/js/translated/part.js:1794
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1812
+#: templates/js/translated/part.js:1819
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1867
+#: templates/js/translated/part.js:1874
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1868
+#: templates/js/translated/part.js:1875
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1969
+#: templates/js/translated/part.js:1976
msgid "Single Price"
msgstr "Cena jednostkowa"
-#: templates/js/translated/part.js:1988
+#: templates/js/translated/part.js:1995
msgid "Single Price Difference"
msgstr ""
@@ -8589,340 +8687,344 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:73
+#: templates/js/translated/stock.js:74
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:173
+#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:181
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/stock.js:93 templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:94 templates/js/translated/stock.js:183
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/stock.js:101
+#: templates/js/translated/stock.js:102
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:110
+#: templates/js/translated/stock.js:111
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:146
+#: templates/js/translated/stock.js:154
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:186
+#: templates/js/translated/stock.js:194
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:225
+#: templates/js/translated/stock.js:233
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:231
+#: templates/js/translated/stock.js:239
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:374
+#: templates/js/translated/stock.js:382
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:387
+#: templates/js/translated/stock.js:395
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:412
+#: templates/js/translated/stock.js:420
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:416 templates/js/translated/stock.js:417
+#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:433
+#: templates/js/translated/stock.js:441
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:453
+#: templates/js/translated/stock.js:461
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:462
+#: templates/js/translated/stock.js:470
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:507
+#: templates/js/translated/stock.js:515
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:518
+#: templates/js/translated/stock.js:526
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:527
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:628
+#: templates/js/translated/stock.js:636
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:629
+#: templates/js/translated/stock.js:637
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:706
+#: templates/js/translated/stock.js:714
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:707
+#: templates/js/translated/stock.js:715
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:709
+#: templates/js/translated/stock.js:717
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:710
+#: templates/js/translated/stock.js:718
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:796
+#: templates/js/translated/stock.js:804
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:797
+#: templates/js/translated/stock.js:805
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:892
+#: templates/js/translated/stock.js:900
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:893
+#: templates/js/translated/stock.js:901
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:899
+#: templates/js/translated/stock.js:907
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:900
+#: templates/js/translated/stock.js:908
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:904
+#: templates/js/translated/stock.js:912
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:905
+#: templates/js/translated/stock.js:913
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:909
+#: templates/js/translated/stock.js:917
msgid "Add Stock"
msgstr "Dodaj stan"
-#: templates/js/translated/stock.js:910 users/models.py:206
+#: templates/js/translated/stock.js:918 users/models.py:208
msgid "Add"
msgstr "Dodaj"
-#: templates/js/translated/stock.js:914 templates/stock_table.html:58
+#: templates/js/translated/stock.js:922 templates/stock_table.html:58
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1003
+#: templates/js/translated/stock.js:1011
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1003
+#: templates/js/translated/stock.js:1011
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1043
+#: templates/js/translated/stock.js:1051
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1201
+#: templates/js/translated/stock.js:1209
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1211
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1208
+#: templates/js/translated/stock.js:1216
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1230
+#: templates/js/translated/stock.js:1238
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1256
+#: templates/js/translated/stock.js:1264
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1313
+#: templates/js/translated/stock.js:1321
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1420
+#: templates/js/translated/stock.js:1428
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1424
+#: templates/js/translated/stock.js:1432
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1432
+#: templates/js/translated/stock.js:1440
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1438
+#: templates/js/translated/stock.js:1446
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1596
+#: templates/js/translated/stock.js:1604
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1601
+#: templates/js/translated/stock.js:1609
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1612
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/stock.js:1616
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1610
+#: templates/js/translated/stock.js:1618
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1616
+#: templates/js/translated/stock.js:1624
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1626
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1620
+#: templates/js/translated/stock.js:1628
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1625
+#: templates/js/translated/stock.js:1633
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1632
+#: templates/js/translated/stock.js:1640
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1634
+#: templates/js/translated/stock.js:1642
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1644
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1640
+#: templates/js/translated/stock.js:1648
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1698
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1763
+#: templates/js/translated/stock.js:1771
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1801
+#: templates/js/translated/stock.js:1809
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1822 templates/js/translated/stock.js:1870
+#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:1878
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1910
+#: templates/js/translated/stock.js:1918
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1937
+#: templates/js/translated/stock.js:1945
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1939
+#: templates/js/translated/stock.js:1947
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:2138
+#: templates/js/translated/stock.js:2146
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2152
+#: templates/js/translated/stock.js:2160
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2153
+#: templates/js/translated/stock.js:2161
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2377
+#: templates/js/translated/stock.js:2340
+msgid "Allocated Quantity"
+msgstr ""
+
+#: templates/js/translated/stock.js:2535
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:2399
+#: templates/js/translated/stock.js:2557
msgid "Details"
msgstr "Szczegóły"
-#: templates/js/translated/stock.js:2424
+#: templates/js/translated/stock.js:2582
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2443
+#: templates/js/translated/stock.js:2601
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2462
+#: templates/js/translated/stock.js:2620
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2480
+#: templates/js/translated/stock.js:2638
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2503
+#: templates/js/translated/stock.js:2661
msgid "Added"
msgstr "Dodano"
-#: templates/js/translated/stock.js:2511
+#: templates/js/translated/stock.js:2669
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2552
+#: templates/js/translated/stock.js:2710
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2553
+#: templates/js/translated/stock.js:2711
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2604
+#: templates/js/translated/stock.js:2762
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2655
+#: templates/js/translated/stock.js:2813
msgid "Uninstall Stock Item"
msgstr ""
@@ -9194,11 +9296,11 @@ msgstr ""
msgid "Sell"
msgstr ""
-#: templates/navbar.html:113
+#: templates/navbar.html:114
msgid "Logout"
msgstr ""
-#: templates/navbar.html:115
+#: templates/navbar.html:116
msgid "Login"
msgstr ""
@@ -9246,31 +9348,43 @@ msgstr ""
msgid "Server is deployed using docker"
msgstr ""
-#: templates/stats.html:40
-msgid "Server status"
+#: templates/stats.html:39
+msgid "Plugin Support"
msgstr ""
#: templates/stats.html:43
-msgid "Healthy"
+msgid "Plugin support enabled"
msgstr ""
#: templates/stats.html:45
-msgid "Issues detected"
+msgid "Plugin support disabled"
msgstr ""
#: templates/stats.html:52
-msgid "Background Worker"
+msgid "Server status"
msgstr ""
#: templates/stats.html:55
+msgid "Healthy"
+msgstr ""
+
+#: templates/stats.html:57
+msgid "Issues detected"
+msgstr ""
+
+#: templates/stats.html:64
+msgid "Background Worker"
+msgstr ""
+
+#: templates/stats.html:67
msgid "Background worker not running"
msgstr ""
-#: templates/stats.html:63
+#: templates/stats.html:75
msgid "Email Settings"
msgstr ""
-#: templates/stats.html:66
+#: templates/stats.html:78
msgid "Email settings not configured"
msgstr ""
@@ -9366,35 +9480,35 @@ msgstr "Uprawnienia"
msgid "Important dates"
msgstr ""
-#: users/models.py:193
+#: users/models.py:195
msgid "Permission set"
msgstr "Uprawnienia nadane"
-#: users/models.py:201
+#: users/models.py:203
msgid "Group"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
msgid "View"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
msgid "Permission to view items"
msgstr "Uprawnienie do wyświetlania przedmiotów"
-#: users/models.py:206
+#: users/models.py:208
msgid "Permission to add items"
msgstr "Uprawnienie do dodawania przedmiotów"
-#: users/models.py:208
+#: users/models.py:210
msgid "Change"
msgstr ""
-#: users/models.py:208
+#: users/models.py:210
msgid "Permissions to edit items"
msgstr "Uprawnienie do edycji przedmiotów"
-#: users/models.py:210
+#: users/models.py:212
msgid "Permission to delete items"
msgstr "Uprawnienie do usuwania przedmiotów"
diff --git a/InvenTree/locale/pt/LC_MESSAGES/django.po b/InvenTree/locale/pt/LC_MESSAGES/django.po
index c7cba4671b..f65a3cf8c2 100644
--- a/InvenTree/locale/pt/LC_MESSAGES/django.po
+++ b/InvenTree/locale/pt/LC_MESSAGES/django.po
@@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-01-10 03:54+0000\n"
-"PO-Revision-Date: 2022-01-10 03:57\n"
+"POT-Creation-Date: 2022-01-29 00:17+0000\n"
+"PO-Revision-Date: 2022-01-29 01:10\n"
"Last-Translator: \n"
"Language-Team: Portuguese\n"
"Language: pt_PT\n"
@@ -18,15 +18,15 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 138\n"
-#: InvenTree/api.py:64
+#: InvenTree/api.py:55
msgid "API endpoint not found"
msgstr ""
-#: InvenTree/api.py:110
+#: InvenTree/api.py:101
msgid "No action specified"
msgstr ""
-#: InvenTree/api.py:124
+#: InvenTree/api.py:116
msgid "No matching action found"
msgstr ""
@@ -80,41 +80,41 @@ msgstr ""
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:437
+#: InvenTree/helpers.py:439
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:444 order/models.py:279 order/models.py:420
+#: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425
#: stock/views.py:1231
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:447
+#: InvenTree/helpers.py:449
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:469 InvenTree/helpers.py:472 InvenTree/helpers.py:475
-#: InvenTree/helpers.py:500
+#: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477
+#: InvenTree/helpers.py:502
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:510
+#: InvenTree/helpers.py:512
#, python-brace-format
msgid "Invalid group {group}"
msgstr ""
-#: InvenTree/helpers.py:516
+#: InvenTree/helpers.py:518
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:522
+#: InvenTree/helpers.py:524
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:526
+#: InvenTree/helpers.py:528
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
@@ -127,7 +127,7 @@ msgstr ""
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:132 stock/models.py:1967
+#: InvenTree/models.py:132 stock/models.py:1995
#: templates/js/translated/attachment.js:119
msgid "Attachment"
msgstr ""
@@ -137,15 +137,15 @@ msgid "Select file to attach"
msgstr ""
#: InvenTree/models.py:139 company/models.py:131 company/models.py:348
-#: company/models.py:564 order/models.py:124 part/models.py:828
+#: company/models.py:564 order/models.py:127 part/models.py:830
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1317
+#: templates/js/translated/company.js:829 templates/js/translated/part.js:1324
msgid "Link"
msgstr ""
-#: InvenTree/models.py:140 build/models.py:330 part/models.py:829
-#: stock/models.py:527
+#: InvenTree/models.py:140 build/models.py:332 part/models.py:831
+#: stock/models.py:529
msgid "Link to external URL"
msgstr ""
@@ -157,10 +157,11 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213
-#: common/models.py:1214 part/models.py:2258 part/models.py:2278
+#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1223
+#: common/models.py:1224 common/models.py:1452 common/models.py:1453
+#: part/models.py:2265 part/models.py:2285
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2534
+#: templates/js/translated/stock.js:2692
msgid "User"
msgstr ""
@@ -197,42 +198,42 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:277 InvenTree/models.py:278 company/models.py:415
-#: label/models.py:112 part/models.py:772 part/models.py:2442
-#: plugin/models.py:40 report/models.py:181
+#: InvenTree/models.py:277 InvenTree/models.py:278 common/models.py:1438
+#: company/models.py:415 label/models.py:112 part/models.py:774
+#: part/models.py:2449 plugin/models.py:40 report/models.py:181
#: templates/InvenTree/settings/mixins/urls.html:13
-#: templates/InvenTree/settings/plugin.html:47
-#: templates/InvenTree/settings/plugin.html:124
+#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin.html:125
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:279
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:561
-#: templates/js/translated/part.js:700 templates/js/translated/part.js:1624
-#: templates/js/translated/stock.js:2327
+#: templates/InvenTree/settings/settings.html:282
+#: templates/js/translated/company.js:641 templates/js/translated/part.js:567
+#: templates/js/translated/part.js:706 templates/js/translated/part.js:1631
+#: templates/js/translated/stock.js:2485
msgid "Name"
msgstr ""
-#: InvenTree/models.py:284 build/models.py:207
+#: InvenTree/models.py:284 build/models.py:209
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:73 label/models.py:119
-#: order/models.py:122 part/models.py:795 part/templates/part/category.html:74
+#: order/models.py:125 part/models.py:797 part/templates/part/category.html:74
#: part/templates/part/part_base.html:163
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:93
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:327 templates/js/translated/bom.js:540
+#: templates/js/translated/bom.js:339 templates/js/translated/bom.js:552
#: templates/js/translated/build.js:1682 templates/js/translated/company.js:345
#: templates/js/translated/company.js:551
#: templates/js/translated/company.js:840 templates/js/translated/order.js:836
#: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258
-#: templates/js/translated/part.js:620 templates/js/translated/part.js:992
-#: templates/js/translated/part.js:1077 templates/js/translated/part.js:1247
-#: templates/js/translated/part.js:1643 templates/js/translated/part.js:1712
-#: templates/js/translated/stock.js:1569 templates/js/translated/stock.js:2339
-#: templates/js/translated/stock.js:2384
+#: templates/js/translated/part.js:626 templates/js/translated/part.js:999
+#: templates/js/translated/part.js:1084 templates/js/translated/part.js:1254
+#: templates/js/translated/part.js:1650 templates/js/translated/part.js:1719
+#: templates/js/translated/stock.js:1577 templates/js/translated/stock.js:2314
+#: templates/js/translated/stock.js:2497 templates/js/translated/stock.js:2542
msgid "Description"
msgstr ""
@@ -244,7 +245,7 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:65 part/models.py:2727
+#: InvenTree/serializers.py:65 part/models.py:2734
msgid "Must be a valid number"
msgstr ""
@@ -252,83 +253,83 @@ msgstr ""
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:661
msgid "German"
msgstr ""
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:662
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:663
msgid "English"
msgstr ""
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:664
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:665
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:666
msgid "French"
msgstr ""
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:667
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:668
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:669
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:670
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:671
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:672
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:673
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:674
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:675
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:676
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:677
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:678
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:679
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:680
msgid "Chinese"
msgstr ""
@@ -374,7 +375,7 @@ msgstr ""
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:143 order/models.py:941
+#: InvenTree/status_codes.py:143 order/models.py:961
#: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255
msgid "Shipped"
msgstr ""
@@ -455,7 +456,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2064
+#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2072
msgid "Merged stock items"
msgstr ""
@@ -543,56 +544,56 @@ msgstr ""
msgid "System Information"
msgstr ""
-#: barcodes/api.py:54 barcodes/api.py:151
+#: barcodes/api.py:54 barcodes/api.py:152
msgid "Must provide barcode_data parameter"
msgstr ""
-#: barcodes/api.py:127
+#: barcodes/api.py:128
msgid "No match found for barcode data"
msgstr ""
-#: barcodes/api.py:129
+#: barcodes/api.py:130
msgid "Match found for barcode data"
msgstr ""
-#: barcodes/api.py:154
+#: barcodes/api.py:155
msgid "Must provide stockitem parameter"
msgstr ""
-#: barcodes/api.py:161
+#: barcodes/api.py:162
msgid "No matching stock item found"
msgstr ""
-#: barcodes/api.py:191
+#: barcodes/api.py:193
msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:195
+#: barcodes/api.py:197
msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:199
+#: barcodes/api.py:201
msgid "Barcode already matches Part"
msgstr ""
-#: barcodes/api.py:205 barcodes/api.py:217
+#: barcodes/api.py:207 barcodes/api.py:219
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:223
+#: barcodes/api.py:225
msgid "Barcode associated with Stock Item"
msgstr ""
-#: build/forms.py:36 build/models.py:1286
+#: build/forms.py:36 build/models.py:1293
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:35 common/models.py:1253
+#: build/templates/build/detail.html:35 common/models.py:1263
#: company/forms.py:42 company/templates/company/supplier_part.html:251
-#: order/models.py:796 order/models.py:1207 order/serializers.py:810
+#: order/models.py:805 order/models.py:1229 order/serializers.py:816
#: order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:145
-#: part/forms.py:161 part/forms.py:177 part/models.py:2629
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144
+#: part/forms.py:160 part/forms.py:176 part/models.py:2636
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:962 part/templates/part/detail.html:1048
+#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -603,7 +604,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:181
#: stock/templates/stock/item_base.html:262
#: stock/templates/stock/item_base.html:270
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:555
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:567
#: templates/js/translated/build.js:295 templates/js/translated/build.js:495
#: templates/js/translated/build.js:689 templates/js/translated/build.js:699
#: templates/js/translated/build.js:1075 templates/js/translated/build.js:1422
@@ -611,11 +612,11 @@ msgstr ""
#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056
#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859
#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036
-#: templates/js/translated/order.js:2150 templates/js/translated/part.js:900
-#: templates/js/translated/part.js:1855 templates/js/translated/part.js:1978
-#: templates/js/translated/part.js:2056 templates/js/translated/stock.js:383
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:750
-#: templates/js/translated/stock.js:2519 templates/js/translated/stock.js:2621
+#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906
+#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985
+#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:391
+#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758
+#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2779
msgid "Quantity"
msgstr ""
@@ -623,9 +624,9 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:41 order/serializers.py:814 stock/forms.py:81
-#: stock/serializers.py:314 templates/js/translated/stock.js:230
-#: templates/js/translated/stock.js:384
+#: build/forms.py:41 order/serializers.py:820 stock/forms.py:81
+#: stock/serializers.py:314 templates/js/translated/stock.js:238
+#: templates/js/translated/stock.js:392
msgid "Serial Numbers"
msgstr ""
@@ -649,18 +650,18 @@ msgstr ""
msgid "Confirm build cancellation"
msgstr ""
-#: build/models.py:133
+#: build/models.py:135
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:139 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:457
+#: templates/js/translated/build.js:457 templates/js/translated/stock.js:2290
msgid "Build Order"
msgstr ""
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:140 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:92
#: order/templates/order/so_sidebar.html:13
@@ -670,40 +671,40 @@ msgstr ""
msgid "Build Orders"
msgstr ""
-#: build/models.py:198
+#: build/models.py:200
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:210 order/models.py:536
-#: order/models.py:803 part/models.py:2638
+#: build/models.py:201 order/models.py:213 order/models.py:541
+#: order/models.py:812 part/models.py:2645
#: 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/translated/bom.js:547 templates/js/translated/build.js:1179
+#: templates/js/translated/bom.js:559 templates/js/translated/build.js:1179
#: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144
msgid "Reference"
msgstr ""
-#: build/models.py:210
+#: build/models.py:212
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:219 build/templates/build/build_base.html:164
+#: build/models.py:221 build/templates/build/build_base.html:164
#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:222
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:225 build/templates/build/build_base.html:77
+#: build/models.py:227 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
-#: order/models.py:856 order/models.py:930
-#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
-#: part/models.py:2204 part/models.py:2220 part/models.py:2239
-#: part/models.py:2256 part/models.py:2358 part/models.py:2480
-#: part/models.py:2613 part/models.py:2920 part/serializers.py:658
+#: order/models.py:876 order/models.py:950
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359
+#: part/models.py:2211 part/models.py:2227 part/models.py:2246
+#: part/models.py:2263 part/models.py:2365 part/models.py:2487
+#: part/models.py:2620 part/models.py:2927 part/serializers.py:658
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -713,205 +714,205 @@ msgstr ""
#: templates/InvenTree/search.html:80
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
-#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:326
-#: templates/js/translated/bom.js:505 templates/js/translated/build.js:680
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:338
+#: templates/js/translated/bom.js:517 templates/js/translated/build.js:680
#: templates/js/translated/build.js:1048 templates/js/translated/build.js:1419
#: templates/js/translated/build.js:1687 templates/js/translated/company.js:492
#: templates/js/translated/company.js:749 templates/js/translated/order.js:84
#: templates/js/translated/order.js:586 templates/js/translated/order.js:1004
#: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933
-#: templates/js/translated/order.js:2128 templates/js/translated/part.js:977
-#: templates/js/translated/part.js:1058 templates/js/translated/part.js:1225
-#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:719
-#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1526
-#: templates/js/translated/stock.js:2609
+#: templates/js/translated/order.js:2128 templates/js/translated/part.js:984
+#: templates/js/translated/part.js:1065 templates/js/translated/part.js:1232
+#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727
+#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1534
+#: templates/js/translated/stock.js:2767
msgid "Part"
msgstr ""
-#: build/models.py:233
+#: build/models.py:235
msgid "Select part to build"
msgstr ""
-#: build/models.py:238
+#: build/models.py:240
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:242
+#: build/models.py:244
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 templates/js/translated/build.js:1407
+#: build/models.py:249 templates/js/translated/build.js:1407
#: templates/js/translated/order.js:1564
msgid "Source Location"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:256
+#: build/models.py:258
msgid "Destination Location"
msgstr ""
-#: build/models.py:260
+#: build/models.py:262
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:264
+#: build/models.py:266
msgid "Build Quantity"
msgstr ""
-#: build/models.py:267
+#: build/models.py:269
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:271
+#: build/models.py:273
msgid "Completed items"
msgstr ""
-#: build/models.py:273
+#: build/models.py:275
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:277 part/templates/part/part_base.html:234
+#: build/models.py:279 part/templates/part/part_base.html:234
msgid "Build Status"
msgstr ""
-#: build/models.py:281
+#: build/models.py:283
msgid "Build status code"
msgstr ""
-#: build/models.py:285 stock/models.py:531
+#: build/models.py:287 stock/models.py:533
msgid "Batch Code"
msgstr ""
-#: build/models.py:289
+#: build/models.py:291
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:126 part/models.py:967
+#: build/models.py:294 order/models.py:129 part/models.py:969
#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:558
+#: build/models.py:298 order/models.py:563
msgid "Target completion date"
msgstr ""
-#: build/models.py:297
+#: build/models.py:299
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:252
+#: build/models.py:302 order/models.py:255
#: templates/js/translated/build.js:1758
msgid "Completion Date"
msgstr ""
-#: build/models.py:306
+#: build/models.py:308
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:1729
+#: build/models.py:316 templates/js/translated/build.js:1729
msgid "Issued by"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:323 build/templates/build/build_base.html:185
-#: build/templates/build/detail.html:116 order/models.py:140
+#: build/models.py:325 build/templates/build/build_base.html:185
+#: build/templates/build/detail.html:116 order/models.py:143
#: order/templates/order/order_base.html:170
-#: order/templates/order/sales_order_base.html:182 part/models.py:971
+#: order/templates/order/sales_order_base.html:182 part/models.py:973
#: report/templates/report/inventree_build_order_base.html:159
#: templates/js/translated/build.js:1741 templates/js/translated/order.js:864
msgid "Responsible"
msgstr ""
-#: build/models.py:324
+#: build/models.py:326
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:329 build/templates/build/detail.html:102
+#: build/models.py:331 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:525
+#: part/templates/part/part_base.html:354 stock/models.py:527
#: stock/templates/stock/item_base.html:373
msgid "External Link"
msgstr ""
-#: build/models.py:334 build/serializers.py:201
+#: build/models.py:336 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
-#: order/models.py:144 order/models.py:805 order/models.py:1051
+#: order/models.py:147 order/models.py:814 order/models.py:1071
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:17 part/models.py:956
-#: part/templates/part/detail.html:120 part/templates/part/part_sidebar.html:50
+#: order/templates/order/so_sidebar.html:17 part/models.py:958
+#: part/templates/part/detail.html:137 part/templates/part/part_sidebar.html:54
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:597
-#: stock/models.py:1867 stock/models.py:1973 stock/serializers.py:332
-#: stock/serializers.py:639 stock/serializers.py:737 stock/serializers.py:869
-#: stock/templates/stock/stock_sidebar.html:21
-#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:711
+#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:599
+#: stock/models.py:1895 stock/models.py:2001 stock/serializers.py:332
+#: stock/serializers.py:640 stock/serializers.py:738 stock/serializers.py:870
+#: stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:723
#: templates/js/translated/company.js:845 templates/js/translated/order.js:1149
#: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280
-#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1795
+#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1803
msgid "Notes"
msgstr ""
-#: build/models.py:335
+#: build/models.py:337
msgid "Extra build notes"
msgstr ""
-#: build/models.py:710
+#: build/models.py:717
msgid "No build output specified"
msgstr ""
-#: build/models.py:713
+#: build/models.py:720
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:716
+#: build/models.py:723
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1108
+#: build/models.py:1115
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1117
+#: build/models.py:1124
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1127
+#: build/models.py:1134
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1133 order/models.py:1167
+#: build/models.py:1140 order/models.py:1189
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1139
+#: build/models.py:1146
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1196
+#: build/models.py:1203
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1256 stock/templates/stock/item_base.html:345
+#: build/models.py:1263 stock/templates/stock/item_base.html:345
#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1660
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1257
+#: build/models.py:1264
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1273 build/serializers.py:388 order/serializers.py:690
-#: order/serializers.py:708 stock/serializers.py:577 stock/serializers.py:695
+#: build/models.py:1280 build/serializers.py:388 order/serializers.py:696
+#: order/serializers.py:714 stock/serializers.py:578 stock/serializers.py:696
#: stock/templates/stock/item_base.html:9
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:367
@@ -920,24 +921,24 @@ msgstr ""
#: templates/js/translated/order.js:85 templates/js/translated/order.js:1577
#: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837
#: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030
-#: templates/js/translated/stock.js:555 templates/js/translated/stock.js:720
-#: templates/js/translated/stock.js:2470
+#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728
+#: templates/js/translated/stock.js:2628
msgid "Stock Item"
msgstr ""
-#: build/models.py:1274
+#: build/models.py:1281
msgid "Source stock item"
msgstr ""
-#: build/models.py:1287
+#: build/models.py:1294
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1295
+#: build/models.py:1302
msgid "Install into"
msgstr ""
-#: build/models.py:1296
+#: build/models.py:1303
msgid "Destination stock item"
msgstr ""
@@ -962,16 +963,16 @@ msgid "This build output is not fully allocated"
msgstr ""
#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294
-#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:730
-#: stock/serializers.py:971 stock/templates/stock/item_base.html:313
+#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:731
+#: stock/serializers.py:972 stock/templates/stock/item_base.html:313
#: templates/js/translated/barcode.js:384
#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:480
#: templates/js/translated/build.js:1087 templates/js/translated/order.js:508
#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955
#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044
-#: templates/js/translated/part.js:179 templates/js/translated/stock.js:556
-#: templates/js/translated/stock.js:721 templates/js/translated/stock.js:928
-#: templates/js/translated/stock.js:1676 templates/js/translated/stock.js:2411
+#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564
+#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936
+#: templates/js/translated/stock.js:1684 templates/js/translated/stock.js:2569
msgid "Location"
msgstr ""
@@ -980,12 +981,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:137
-#: build/templates/build/detail.html:63 order/models.py:552
+#: build/templates/build/detail.html:63 order/models.py:557
#: order/serializers.py:247 stock/templates/stock/item_base.html:187
#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1716
#: templates/js/translated/order.js:591 templates/js/translated/order.js:840
-#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1651
-#: templates/js/translated/stock.js:2488 templates/js/translated/stock.js:2637
+#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:2646 templates/js/translated/stock.js:2795
msgid "Status"
msgstr ""
@@ -1021,8 +1022,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:313 build/serializers.py:362 part/models.py:2753
-#: part/models.py:2912
+#: build/serializers.py:313 build/serializers.py:362 part/models.py:2760
+#: part/models.py:2919
msgid "BOM Item"
msgstr ""
@@ -1038,16 +1039,16 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:394 stock/serializers.py:584
+#: build/serializers.py:394 stock/serializers.py:585
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:408 order/models.py:277 order/serializers.py:240
-#: stock/models.py:365 stock/models.py:1077 stock/serializers.py:305
+#: build/serializers.py:408 order/models.py:280 order/serializers.py:240
+#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:450 order/serializers.py:741
+#: build/serializers.py:450 order/serializers.py:747
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1060,7 +1061,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:491 order/serializers.py:984
+#: build/serializers.py:491 order/serializers.py:990
msgid "Allocation items must be provided"
msgstr ""
@@ -1164,13 +1165,13 @@ msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:171
-#: build/templates/build/detail.html:95 order/models.py:927
-#: order/models.py:1023 order/templates/order/sales_order_base.html:9
+#: build/templates/build/detail.html:95 order/models.py:947
+#: order/models.py:1043 order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/order.js:1218
+#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2304
msgid "Sales Order"
msgstr ""
@@ -1224,7 +1225,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:50 order/models.py:878 stock/forms.py:136
+#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:136
#: templates/js/translated/order.js:592 templates/js/translated/order.js:1138
msgid "Destination"
msgstr ""
@@ -1239,7 +1240,7 @@ msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:331
-#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2644
+#: templates/js/translated/stock.js:1673 templates/js/translated/stock.js:2802
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:238
msgid "Batch"
@@ -1343,9 +1344,9 @@ msgstr ""
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:107
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:196
-#: part/templates/part/part_sidebar.html:48 stock/templates/stock/item.html:95
-#: stock/templates/stock/stock_sidebar.html:19
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:213
+#: part/templates/part/part_sidebar.html:52 stock/templates/stock/item.html:112
+#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr ""
@@ -1360,8 +1361,8 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:108
#: order/templates/order/sales_order_detail.html:127
#: order/templates/order/sales_order_detail.html:186
-#: part/templates/part/detail.html:124 stock/templates/stock/item.html:115
-#: stock/templates/stock/item.html:205
+#: part/templates/part/detail.html:141 stock/templates/stock/item.html:132
+#: stock/templates/stock/item.html:235
msgid "Edit Notes"
msgstr ""
@@ -1373,7 +1374,7 @@ msgstr ""
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:303
+#: build/templates/build/index.html:18 part/templates/part/detail.html:320
msgid "New Build Order"
msgstr ""
@@ -1453,23 +1454,23 @@ msgstr ""
msgid "Delete Build Order"
msgstr ""
-#: common/files.py:67
+#: common/files.py:65
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
-#: common/files.py:69
+#: common/files.py:67
msgid "Error reading file (invalid encoding)"
msgstr ""
-#: common/files.py:74
+#: common/files.py:72
msgid "Error reading file (invalid format)"
msgstr ""
-#: common/files.py:76
+#: common/files.py:74
msgid "Error reading file (incorrect dimension)"
msgstr ""
-#: common/files.py:78
+#: common/files.py:76
msgid "Error reading file (data could be corrupted)"
msgstr ""
@@ -1490,740 +1491,828 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:344 common/models.py:998 common/models.py:1206
-msgid "Settings key (must be unique - case insensitive"
+#: common/models.py:352
+msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:346
+#: common/models.py:354
msgid "Settings value"
msgstr ""
-#: common/models.py:380
+#: common/models.py:388
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:400
+#: common/models.py:408
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:411
+#: common/models.py:419
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:434
+#: common/models.py:442
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:553
+#: common/models.py:561
msgid "No group"
msgstr ""
-#: common/models.py:595
+#: common/models.py:603
msgid "Restart required"
msgstr ""
-#: common/models.py:596
+#: common/models.py:604
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:603
+#: common/models.py:611
msgid "InvenTree Instance Name"
msgstr ""
-#: common/models.py:605
+#: common/models.py:613
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:609
+#: common/models.py:617
msgid "Use instance name"
msgstr ""
-#: common/models.py:610
+#: common/models.py:618
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:616 company/models.py:100 company/models.py:101
+#: common/models.py:624 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr ""
-#: common/models.py:617
+#: common/models.py:625
msgid "Internal company name"
msgstr ""
-#: common/models.py:622
+#: common/models.py:630
msgid "Base URL"
msgstr ""
-#: common/models.py:623
+#: common/models.py:631
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:629
+#: common/models.py:637
msgid "Default Currency"
msgstr ""
-#: common/models.py:630
+#: common/models.py:638
msgid "Default currency"
msgstr ""
-#: common/models.py:636
+#: common/models.py:644
msgid "Download from URL"
msgstr ""
-#: common/models.py:637
+#: common/models.py:645
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:643 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:651 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
-#: common/models.py:644
+#: common/models.py:652
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:650
+#: common/models.py:658
msgid "IPN Regex"
msgstr ""
-#: common/models.py:651
+#: common/models.py:659
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:655
+#: common/models.py:663
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:656
+#: common/models.py:664
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:662
+#: common/models.py:670
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:663
+#: common/models.py:671
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:669
+#: common/models.py:677
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:670
+#: common/models.py:678
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:676
+#: common/models.py:684
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:677
+#: common/models.py:685
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:683
+#: common/models.py:691
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:684
+#: common/models.py:692
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:690
+#: common/models.py:698
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:691
+#: common/models.py:699
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:697 part/models.py:2482 report/models.py:187
+#: common/models.py:705 part/models.py:2489 report/models.py:187
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:422
msgid "Template"
msgstr ""
-#: common/models.py:698
+#: common/models.py:706
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:704 part/models.py:919 templates/js/translated/bom.js:1068
+#: common/models.py:712 part/models.py:921 templates/js/translated/bom.js:1082
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:434
msgid "Assembly"
msgstr ""
-#: common/models.py:705
+#: common/models.py:713
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:711 part/models.py:925
+#: common/models.py:719 part/models.py:927
#: templates/js/translated/table_filters.js:438
msgid "Component"
msgstr ""
-#: common/models.py:712
+#: common/models.py:720
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:718 part/models.py:936
+#: common/models.py:726 part/models.py:938
msgid "Purchaseable"
msgstr ""
-#: common/models.py:719
+#: common/models.py:727
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:725 part/models.py:941
+#: common/models.py:733 part/models.py:943
#: templates/js/translated/table_filters.js:446
msgid "Salable"
msgstr ""
-#: common/models.py:726
+#: common/models.py:734
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:732 part/models.py:931
+#: common/models.py:740 part/models.py:933
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
#: templates/js/translated/table_filters.js:450
msgid "Trackable"
msgstr ""
-#: common/models.py:733
+#: common/models.py:741
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:739 part/models.py:951
+#: common/models.py:747 part/models.py:953
#: part/templates/part/part_base.html:147
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr ""
-#: common/models.py:740
+#: common/models.py:748
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:746
+#: common/models.py:754
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:747
+#: common/models.py:755
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:753
+#: common/models.py:761
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:754
+#: common/models.py:762
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:765
+#: common/models.py:773
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:766
+#: common/models.py:774
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:772
+#: common/models.py:780
msgid "Show related parts"
msgstr ""
-#: common/models.py:773
+#: common/models.py:781
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:779
+#: common/models.py:787
msgid "Create initial stock"
msgstr ""
-#: common/models.py:780
+#: common/models.py:788
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:786
+#: common/models.py:794
msgid "Internal Prices"
msgstr ""
-#: common/models.py:787
+#: common/models.py:795
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:793
+#: common/models.py:801
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:794
+#: common/models.py:802
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:800
+#: common/models.py:808
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:801
+#: common/models.py:809
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:808
+#: common/models.py:816
msgid "Enable Reports"
msgstr ""
-#: common/models.py:809
+#: common/models.py:817
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:815 templates/stats.html:25
+#: common/models.py:823 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:816
+#: common/models.py:824
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:822
+#: common/models.py:830
msgid "Page Size"
msgstr ""
-#: common/models.py:823
+#: common/models.py:831
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:833
+#: common/models.py:841
msgid "Test Reports"
msgstr ""
-#: common/models.py:834
+#: common/models.py:842
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:840
+#: common/models.py:848
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:841
+#: common/models.py:849
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:847
+#: common/models.py:855
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:848
+#: common/models.py:856
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:854
+#: common/models.py:862
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:855
+#: common/models.py:863
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:857
+#: common/models.py:865
msgid "days"
msgstr ""
-#: common/models.py:862
+#: common/models.py:870
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:863
+#: common/models.py:871
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:869
+#: common/models.py:877
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:870
+#: common/models.py:878
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:876
-msgid "Group by Part"
-msgstr ""
-
-#: common/models.py:877
-msgid "Group stock items by part reference in table views"
-msgstr ""
-
-#: common/models.py:883
+#: common/models.py:884
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:884
+#: common/models.py:885
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:889
+#: common/models.py:890
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:890
+#: common/models.py:891
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:894
+#: common/models.py:895
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:895
+#: common/models.py:896
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:900
+#: common/models.py:901
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:901
+#: common/models.py:902
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:907
+#: common/models.py:908
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:908
+#: common/models.py:909
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:913
+#: common/models.py:914
msgid "Enable registration"
msgstr ""
-#: common/models.py:914
+#: common/models.py:915
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:919
+#: common/models.py:920
msgid "Enable SSO"
msgstr ""
-#: common/models.py:920
+#: common/models.py:921
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:925
+#: common/models.py:926
msgid "Email required"
msgstr ""
-#: common/models.py:926
+#: common/models.py:927
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:931
+#: common/models.py:932
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:932
+#: common/models.py:933
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:937
+#: common/models.py:938
msgid "Mail twice"
msgstr ""
-#: common/models.py:938
+#: common/models.py:939
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:943
+#: common/models.py:944
msgid "Password twice"
msgstr ""
-#: common/models.py:944
+#: common/models.py:945
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:949
+#: common/models.py:950
msgid "Group on signup"
msgstr ""
-#: common/models.py:950
+#: common/models.py:951
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:955
+#: common/models.py:956
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:956
+#: common/models.py:957
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:961
+#: common/models.py:964
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:962
+#: common/models.py:965
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:968
+#: common/models.py:971
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:969
+#: common/models.py:972
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:975
+#: common/models.py:978
msgid "Enable app integration"
msgstr ""
-#: common/models.py:976
+#: common/models.py:979
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:982
+#: common/models.py:985
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:983
+#: common/models.py:986
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1029
+#: common/models.py:992
+msgid "Enable event integration"
+msgstr ""
+
+#: common/models.py:993
+msgid "Enable plugins to respond to internal events"
+msgstr ""
+
+#: common/models.py:1008 common/models.py:1216
+msgid "Settings key (must be unique - case insensitive"
+msgstr ""
+
+#: common/models.py:1039
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1030
+#: common/models.py:1040
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1035
+#: common/models.py:1045
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1036
+#: common/models.py:1046
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1041
+#: common/models.py:1051
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1042
+#: common/models.py:1052
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1047
+#: common/models.py:1057
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1048
+#: common/models.py:1058
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1054
+#: common/models.py:1064
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1055
+#: common/models.py:1065
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1070
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1061
+#: common/models.py:1071
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1066
+#: common/models.py:1076
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1067
+#: common/models.py:1077
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1072
+#: common/models.py:1082
msgid "Show low stock"
msgstr ""
-#: common/models.py:1073
+#: common/models.py:1083
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1078
+#: common/models.py:1088
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1079
+#: common/models.py:1089
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1084
+#: common/models.py:1094
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1085
+#: common/models.py:1095
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1090
+#: common/models.py:1100
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1091
+#: common/models.py:1101
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1096
+#: common/models.py:1106
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1097
+#: common/models.py:1107
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1102
+#: common/models.py:1112
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1103
+#: common/models.py:1113
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1108
+#: common/models.py:1118
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1109
+#: common/models.py:1119
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1114
+#: common/models.py:1124
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1115
+#: common/models.py:1125
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1120
+#: common/models.py:1130
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1121
+#: common/models.py:1131
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1136
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1127
+#: common/models.py:1137
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1142
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1143
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1149
msgid "Inline label display"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1150
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1156
msgid "Inline report display"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1157
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1163
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1164
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1170
msgid "Search Show Stock"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1171
msgid "Display stock levels in search preview window"
msgstr ""
-#: common/models.py:1167
+#: common/models.py:1177
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1178
msgid "Hide inactive parts in search preview window"
msgstr ""
-#: common/models.py:1174
+#: common/models.py:1184
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1175
+#: common/models.py:1185
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1181
+#: common/models.py:1191
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1182
+#: common/models.py:1192
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1188
+#: common/models.py:1198
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1199
msgid "InvenTree navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1254 company/forms.py:43
+#: common/models.py:1264 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1261 company/serializers.py:264
+#: common/models.py:1271 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:909 templates/js/translated/part.js:1860
+#: templates/js/translated/part.js:915 templates/js/translated/part.js:1867
msgid "Price"
msgstr ""
-#: common/models.py:1262
+#: common/models.py:1272
msgid "Unit price at specified quantity"
msgstr ""
+#: common/models.py:1429 common/models.py:1568
+msgid "Endpoint"
+msgstr ""
+
+#: common/models.py:1430
+msgid "Endpoint at which this webhook is received"
+msgstr ""
+
+#: common/models.py:1439
+msgid "Name for this webhook"
+msgstr ""
+
+#: common/models.py:1444 part/models.py:948 plugin/models.py:46
+#: templates/js/translated/table_filters.js:34
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:295
+#: templates/js/translated/table_filters.js:417
+msgid "Active"
+msgstr ""
+
+#: common/models.py:1445
+msgid "Is this webhook active"
+msgstr ""
+
+#: common/models.py:1459
+msgid "Token"
+msgstr ""
+
+#: common/models.py:1460
+msgid "Token for access"
+msgstr ""
+
+#: common/models.py:1467
+msgid "Secret"
+msgstr ""
+
+#: common/models.py:1468
+msgid "Shared secret for HMAC"
+msgstr ""
+
+#: common/models.py:1535
+msgid "Message ID"
+msgstr ""
+
+#: common/models.py:1536
+msgid "Unique identifier for this message"
+msgstr ""
+
+#: common/models.py:1544
+msgid "Host"
+msgstr ""
+
+#: common/models.py:1545
+msgid "Host from which this message was received"
+msgstr ""
+
+#: common/models.py:1552
+msgid "Header"
+msgstr ""
+
+#: common/models.py:1553
+msgid "Header of this message"
+msgstr ""
+
+#: common/models.py:1559
+msgid "Body"
+msgstr ""
+
+#: common/models.py:1560
+msgid "Body of this message"
+msgstr ""
+
+#: common/models.py:1569
+msgid "Endpoint on which this message was received"
+msgstr ""
+
+#: common/models.py:1574
+msgid "Worked on"
+msgstr ""
+
+#: common/models.py:1575
+msgid "Was the work on this message finished?"
+msgstr ""
+
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
#: part/templates/part/bom_upload/upload_file.html:52
-#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
-#: part/views.py:764
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:213
+#: part/views.py:773
msgid "Upload File"
msgstr ""
#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
-#: part/views.py:765
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:214
+#: part/views.py:774
msgid "Match Fields"
msgstr ""
@@ -2315,7 +2404,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:838
+#: company/models.py:139 part/models.py:840
msgid "Image"
msgstr ""
@@ -2352,8 +2441,8 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:469
-#: stock/templates/stock/item_base.html:142
+#: company/models.py:320 company/models.py:535 stock/models.py:471
+#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:328
msgid "Base Part"
msgstr ""
@@ -2380,7 +2469,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:818 templates/js/translated/order.js:1038
-#: templates/js/translated/part.js:245 templates/js/translated/part.js:889
+#: templates/js/translated/part.js:245 templates/js/translated/part.js:895
msgid "MPN"
msgstr ""
@@ -2409,8 +2498,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1960 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:709 templates/js/translated/stock.js:1296
+#: stock/models.py:1988 templates/js/translated/company.js:647
+#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1304
msgid "Value"
msgstr ""
@@ -2418,10 +2507,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:913 part/models.py:2450
+#: company/models.py:429 part/models.py:915 part/models.py:2457
#: part/templates/part/part_base.html:288
-#: templates/InvenTree/settings/settings.html:284
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:715
+#: templates/InvenTree/settings/settings.html:287
+#: templates/js/translated/company.js:653 templates/js/translated/part.js:721
msgid "Units"
msgstr ""
@@ -2434,13 +2523,13 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:78
-#: company/templates/company/supplier_part.html:87 order/models.py:224
+#: company/templates/company/supplier_part.html:87 order/models.py:227
#: order/templates/order/order_base.html:112
-#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
-#: part/bom.py:247 stock/templates/stock/item_base.html:397
+#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237
+#: part/bom.py:265 stock/templates/stock/item_base.html:397
#: templates/js/translated/company.js:337
#: templates/js/translated/company.js:774 templates/js/translated/order.js:823
-#: templates/js/translated/part.js:215 templates/js/translated/part.js:857
+#: templates/js/translated/part.js:215 templates/js/translated/part.js:863
#: templates/js/translated/table_filters.js:393
msgid "Supplier"
msgstr ""
@@ -2450,8 +2539,8 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:1025
-#: templates/js/translated/part.js:226 templates/js/translated/part.js:875
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1025
+#: templates/js/translated/part.js:226 templates/js/translated/part.js:881
msgid "SKU"
msgstr ""
@@ -2472,22 +2561,22 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:119
-#: part/models.py:2641 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2648 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:580 part/models.py:1779
+#: company/models.py:580 part/models.py:1781
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1779
+#: company/models.py:580 part/models.py:1781
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:493 stock/templates/stock/item_base.html:338
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1791
+#: stock/models.py:495 stock/templates/stock/item_base.html:338
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1799
msgid "Packaging"
msgstr ""
@@ -2495,7 +2584,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1781
+#: company/models.py:584 part/models.py:1783
msgid "multiple"
msgstr ""
@@ -2554,12 +2643,12 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:83 order/models.py:547
-#: order/templates/order/sales_order_base.html:115 stock/models.py:512
-#: stock/models.py:513 stock/serializers.py:625
+#: company/templates/company/company_base.html:83 order/models.py:552
+#: order/templates/order/sales_order_base.html:115 stock/models.py:514
+#: stock/models.py:515 stock/serializers.py:626
#: stock/templates/stock/item_base.html:290
#: templates/js/translated/company.js:329 templates/js/translated/order.js:1240
-#: templates/js/translated/stock.js:2452
+#: templates/js/translated/stock.js:2610
#: templates/js/translated/table_filters.js:397
msgid "Customer"
msgstr ""
@@ -2590,7 +2679,7 @@ msgstr ""
#: company/templates/company/detail.html:20
#: company/templates/company/manufacturer_part.html:118
-#: part/templates/part/detail.html:336
+#: part/templates/part/detail.html:353
msgid "New Supplier Part"
msgstr ""
@@ -2598,8 +2687,8 @@ msgstr ""
#: company/templates/company/detail.html:79
#: company/templates/company/manufacturer_part.html:127
#: company/templates/company/manufacturer_part.html:156
-#: part/templates/part/category.html:171 part/templates/part/detail.html:345
-#: part/templates/part/detail.html:374
+#: part/templates/part/category.html:171 part/templates/part/detail.html:362
+#: part/templates/part/detail.html:391
msgid "Options"
msgstr ""
@@ -2627,7 +2716,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:364
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:381
msgid "New Manufacturer Part"
msgstr ""
@@ -2641,7 +2730,7 @@ msgstr ""
#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:68 part/templates/part/part_sidebar.html:33
+#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
@@ -2663,7 +2752,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:91 part/templates/part/part_sidebar.html:37
+#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:41
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
@@ -2691,13 +2780,13 @@ msgstr ""
#: company/templates/company/detail.html:384
#: company/templates/company/manufacturer_part.html:215
-#: part/templates/part/detail.html:418
+#: part/templates/part/detail.html:435
msgid "Delete Supplier Parts?"
msgstr ""
#: company/templates/company/detail.html:385
#: company/templates/company/manufacturer_part.html:216
-#: part/templates/part/detail.html:419
+#: part/templates/part/detail.html:436
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2714,7 +2803,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:34
#: company/templates/company/supplier_part.html:159
-#: part/templates/part/detail.html:71 part/templates/part/part_base.html:76
+#: part/templates/part/detail.html:88 part/templates/part/part_base.html:76
msgid "Order part"
msgstr ""
@@ -2735,34 +2824,34 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:114
#: company/templates/company/supplier_part.html:15 company/views.py:49
-#: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163
+#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:163
#: templates/InvenTree/search.html:188 templates/navbar.html:45
msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
-#: part/templates/part/detail.html:347
+#: part/templates/part/detail.html:364
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
#: company/templates/company/manufacturer_part.html:158
#: company/templates/company/manufacturer_part.html:254
-#: part/templates/part/detail.html:347 part/templates/part/detail.html:376
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:393
#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31
-#: users/models.py:210
+#: users/models.py:212
msgid "Delete"
msgstr ""
#: company/templates/company/manufacturer_part.html:143
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:17
-#: part/templates/part/detail.html:170 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:187 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:147
-#: part/templates/part/detail.html:175
+#: part/templates/part/detail.html:192
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
@@ -2773,7 +2862,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:191
-#: part/templates/part/detail.html:862
+#: part/templates/part/detail.html:892
msgid "Add Parameter"
msgstr ""
@@ -2802,9 +2891,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:477
+#: company/templates/company/supplier_part.html:24 stock/models.py:479
#: stock/templates/stock/item_base.html:402
-#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1748
+#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1756
msgid "Supplier Part"
msgstr ""
@@ -2830,7 +2919,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:167
-#: templates/js/translated/stock.js:360
+#: templates/js/translated/stock.js:368
msgid "New Stock Item"
msgstr ""
@@ -2840,7 +2929,7 @@ msgid "Supplier Part Orders"
msgstr ""
#: company/templates/company/supplier_part.html:160
-#: part/templates/part/detail.html:72
+#: part/templates/part/detail.html:89
msgid "Order Part"
msgstr ""
@@ -2851,7 +2940,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1619
+#: part/templates/part/prices.html:271 part/views.py:1628
msgid "Add Price Break"
msgstr ""
@@ -2859,11 +2948,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1681
+#: company/templates/company/supplier_part.html:224 part/views.py:1690
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1667
+#: company/templates/company/supplier_part.html:238 part/views.py:1676
msgid "Edit Price Break"
msgstr ""
@@ -2881,10 +2970,10 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:150
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/bom.js:328 templates/js/translated/part.js:489
-#: templates/js/translated/part.js:624 templates/js/translated/part.js:1118
-#: templates/js/translated/part.js:1279 templates/js/translated/stock.js:927
-#: templates/js/translated/stock.js:1580 templates/navbar.html:28
+#: templates/js/translated/bom.js:340 templates/js/translated/part.js:495
+#: templates/js/translated/part.js:630 templates/js/translated/part.js:1125
+#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:935
+#: templates/js/translated/stock.js:1588 templates/navbar.html:28
msgid "Stock"
msgstr ""
@@ -2907,8 +2996,8 @@ msgstr ""
#: stock/templates/stock/location.html:151
#: stock/templates/stock/location.html:163
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2351
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2509
+#: templates/stats.html:105 templates/stats.html:114 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2937,20 +3026,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:584
+#: company/views.py:129 part/views.py:593
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:616
+#: company/views.py:158 part/views.py:625
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:623
+#: company/views.py:165 part/views.py:632
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:632
+#: company/views.py:174 part/views.py:641
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3036,282 +3125,282 @@ msgstr ""
msgid "Cancel order"
msgstr ""
-#: order/models.py:122
+#: order/models.py:125
msgid "Order description"
msgstr ""
-#: order/models.py:124
+#: order/models.py:127
msgid "Link to external page"
msgstr ""
-#: order/models.py:132
+#: order/models.py:135
msgid "Created By"
msgstr ""
-#: order/models.py:139
+#: order/models.py:142
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:144
+#: order/models.py:147
msgid "Order notes"
msgstr ""
-#: order/models.py:211 order/models.py:537
+#: order/models.py:214 order/models.py:542
msgid "Order reference"
msgstr ""
-#: order/models.py:216 order/models.py:552
+#: order/models.py:219 order/models.py:557
msgid "Purchase order status"
msgstr ""
-#: order/models.py:225
+#: order/models.py:228
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:228 order/templates/order/order_base.html:118
+#: order/models.py:231 order/templates/order/order_base.html:118
#: templates/js/translated/order.js:832
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:228
+#: order/models.py:231
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:235
+#: order/models.py:238
msgid "received by"
msgstr ""
-#: order/models.py:240
+#: order/models.py:243
msgid "Issue Date"
msgstr ""
-#: order/models.py:241
+#: order/models.py:244
msgid "Date order was issued"
msgstr ""
-#: order/models.py:246
+#: order/models.py:249
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:247
+#: order/models.py:250
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:253
+#: order/models.py:256
msgid "Date order was completed"
msgstr ""
-#: order/models.py:282
+#: order/models.py:285
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:411
-msgid "Quantity must be an integer"
-msgstr ""
-
-#: order/models.py:415
+#: order/models.py:420
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:548
+#: order/models.py:553
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:554
+#: order/models.py:559
msgid "Customer Reference "
msgstr ""
-#: order/models.py:554
+#: order/models.py:559
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:559
+#: order/models.py:564
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:562 order/models.py:1028
+#: order/models.py:567 order/models.py:1048
#: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429
msgid "Shipment Date"
msgstr ""
-#: order/models.py:569
+#: order/models.py:574
msgid "shipped by"
msgstr ""
-#: order/models.py:635
+#: order/models.py:640
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:639
+#: order/models.py:644
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:642
+#: order/models.py:647
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:645
+#: order/models.py:650
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:797
+#: order/models.py:806
msgid "Item quantity"
msgstr ""
-#: order/models.py:803
+#: order/models.py:812
msgid "Line item reference"
msgstr ""
-#: order/models.py:805
+#: order/models.py:814
msgid "Line item notes"
msgstr ""
-#: order/models.py:835 order/models.py:926 order/models.py:1022
-#: templates/js/translated/order.js:1820
+#: order/models.py:842
+msgid "Supplier part must match supplier"
+msgstr ""
+
+#: order/models.py:855 order/models.py:946 order/models.py:1042
+#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2271
msgid "Order"
msgstr ""
-#: order/models.py:836 order/templates/order/order_base.html:9
+#: order/models.py:856 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:352
-#: templates/js/translated/order.js:801 templates/js/translated/part.js:832
-#: templates/js/translated/stock.js:1725 templates/js/translated/stock.js:2433
+#: templates/js/translated/order.js:801 templates/js/translated/part.js:838
+#: templates/js/translated/stock.js:1733 templates/js/translated/stock.js:2591
msgid "Purchase Order"
msgstr ""
-#: order/models.py:857
+#: order/models.py:877
msgid "Supplier part"
msgstr ""
-#: order/models.py:864 order/templates/order/order_base.html:163
+#: order/models.py:884 order/templates/order/order_base.html:163
#: templates/js/translated/order.js:589 templates/js/translated/order.js:1118
-#: templates/js/translated/part.js:904 templates/js/translated/part.js:930
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:937
#: templates/js/translated/table_filters.js:317
msgid "Received"
msgstr ""
-#: order/models.py:865
+#: order/models.py:885
msgid "Number of items received"
msgstr ""
-#: order/models.py:872 part/templates/part/prices.html:176 stock/models.py:606
+#: order/models.py:892 part/templates/part/prices.html:176 stock/models.py:608
#: stock/serializers.py:170 stock/templates/stock/item_base.html:359
-#: templates/js/translated/stock.js:1779
+#: templates/js/translated/stock.js:1787
msgid "Purchase Price"
msgstr ""
-#: order/models.py:873
+#: order/models.py:893
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:881
+#: order/models.py:901
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:936 part/templates/part/part_pricing.html:112
+#: order/models.py:956 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:937
+#: order/models.py:957
msgid "Unit sale price"
msgstr ""
-#: order/models.py:942
+#: order/models.py:962
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1029
+#: order/models.py:1049
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1036
+#: order/models.py:1056
msgid "Checked By"
msgstr ""
-#: order/models.py:1037
+#: order/models.py:1057
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1045
+#: order/models.py:1065
msgid "Shipment number"
msgstr ""
-#: order/models.py:1052
+#: order/models.py:1072
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1059
+#: order/models.py:1079
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1060
+#: order/models.py:1080
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1070
+#: order/models.py:1090
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1073
+#: order/models.py:1093
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1149 order/models.py:1151
+#: order/models.py:1171 order/models.py:1173
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1155
+#: order/models.py:1177
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1157
+#: order/models.py:1179
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1160
+#: order/models.py:1182
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1164
+#: order/models.py:1186
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:1170 order/serializers.py:734
+#: order/models.py:1192 order/serializers.py:740
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1173
+#: order/models.py:1195
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1174
+#: order/models.py:1196
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1182
+#: order/models.py:1204
msgid "Line"
msgstr ""
-#: order/models.py:1190 order/serializers.py:825 order/serializers.py:953
-#: templates/js/translated/model_renderers.js:251
+#: order/models.py:1212 order/serializers.py:831 order/serializers.py:959
+#: templates/js/translated/model_renderers.js:285
msgid "Shipment"
msgstr ""
-#: order/models.py:1191
+#: order/models.py:1213
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1203
+#: order/models.py:1225
msgid "Item"
msgstr ""
-#: order/models.py:1204
+#: order/models.py:1226
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1207
+#: order/models.py:1229
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3319,7 +3408,7 @@ msgstr ""
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:211 order/serializers.py:790
+#: order/serializers.py:211 order/serializers.py:796
msgid "Line Item"
msgstr ""
@@ -3355,39 +3444,39 @@ msgstr ""
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:581
+#: order/serializers.py:587
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:649
+#: order/serializers.py:655
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:699 order/serializers.py:802
+#: order/serializers.py:705 order/serializers.py:808
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:721
+#: order/serializers.py:727
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:815
+#: order/serializers.py:821
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:839 order/serializers.py:964
+#: order/serializers.py:845 order/serializers.py:970
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:842 order/serializers.py:967
+#: order/serializers.py:848 order/serializers.py:973
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:894
+#: order/serializers.py:900
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:904
+#: order/serializers.py:910
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3441,6 +3530,7 @@ msgstr ""
#: order/templates/order/order_base.html:94
#: order/templates/order/sales_order_base.html:89
+#: templates/js/translated/stock.js:2327
msgid "Order Status"
msgstr ""
@@ -3538,7 +3628,7 @@ msgstr ""
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/build.js:300 templates/js/translated/build.js:1311
#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488
-#: templates/js/translated/stock.js:593 templates/js/translated/stock.js:761
+#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769
msgid "Remove row"
msgstr ""
@@ -3729,7 +3819,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:48
-#: templates/js/translated/bom.js:720 templates/js/translated/build.js:1243
+#: templates/js/translated/bom.js:732 templates/js/translated/build.js:1243
msgid "Actions"
msgstr ""
@@ -3832,447 +3922,448 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:125 part/models.py:81 part/models.py:847
+#: part/bom.py:125 part/models.py:83 part/models.py:849
#: part/templates/part/category.html:108 part/templates/part/part_base.html:338
msgid "Default Location"
msgstr ""
-#: part/bom.py:126 part/templates/part/part_base.html:185
+#: part/bom.py:126 templates/email/low_stock_notification.html:17
+msgid "Total Stock"
+msgstr ""
+
+#: part/bom.py:127 part/templates/part/part_base.html:185
msgid "Available Stock"
msgstr ""
-#: part/forms.py:85
+#: part/bom.py:128 part/templates/part/part_base.html:203
+#: templates/js/translated/part.js:1301
+msgid "On Order"
+msgstr ""
+
+#: part/forms.py:84
msgid "Select part category"
msgstr ""
-#: part/forms.py:122
+#: part/forms.py:121
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:126
+#: part/forms.py:125
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:146
+#: part/forms.py:145
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:82
+#: part/models.py:84
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:85
+#: part/models.py:87
msgid "Default keywords"
msgstr ""
-#: part/models.py:85
+#: part/models.py:87
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:95 part/models.py:2526 part/templates/part/category.html:15
+#: part/models.py:97 part/models.py:2533 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:96 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/stats.html:84
+#: part/models.py:98 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/stats.html:96
#: users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:358 part/templates/part/cat_link.html:3
+#: part/models.py:360 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:17 part/templates/part/category.html:133
#: part/templates/part/category.html:153
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:37
-#: templates/js/translated/part.js:1656 templates/navbar.html:21
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+#: templates/js/translated/part.js:1663 templates/navbar.html:21
+#: templates/stats.html:92 templates/stats.html:101 users/models.py:41
msgid "Parts"
msgstr ""
-#: part/models.py:450
+#: part/models.py:452
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:500 part/models.py:512
+#: part/models.py:502 part/models.py:514
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:642
+#: part/models.py:644
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:646
+#: part/models.py:648
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:651
+#: part/models.py:653
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:746
+#: part/models.py:748
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:771
+#: part/models.py:773
msgid "Part name"
msgstr ""
-#: part/models.py:778
+#: part/models.py:780
msgid "Is Template"
msgstr ""
-#: part/models.py:779
+#: part/models.py:781
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:789
+#: part/models.py:791
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:790
+#: part/models.py:792
msgid "Variant Of"
msgstr ""
-#: part/models.py:796
+#: part/models.py:798
msgid "Part description"
msgstr ""
-#: part/models.py:801 part/templates/part/category.html:86
+#: part/models.py:803 part/templates/part/category.html:86
#: part/templates/part/part_base.html:302
msgid "Keywords"
msgstr ""
-#: part/models.py:802
+#: part/models.py:804
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:809 part/models.py:2276 part/models.py:2525
+#: part/models.py:811 part/models.py:2283 part/models.py:2532
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:183
-#: templates/js/translated/part.js:1261
+#: templates/InvenTree/settings/settings.html:186
+#: templates/js/translated/part.js:1268
msgid "Category"
msgstr ""
-#: part/models.py:810
+#: part/models.py:812
msgid "Part category"
msgstr ""
-#: part/models.py:815 part/templates/part/part_base.html:274
-#: templates/js/translated/part.js:612 templates/js/translated/part.js:1214
-#: templates/js/translated/stock.js:1552
+#: part/models.py:817 part/templates/part/part_base.html:274
+#: templates/js/translated/part.js:618 templates/js/translated/part.js:1221
+#: templates/js/translated/stock.js:1560
msgid "IPN"
msgstr ""
-#: part/models.py:816
+#: part/models.py:818
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:822
+#: part/models.py:824
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:823 part/templates/part/part_base.html:281
-#: report/models.py:200 templates/js/translated/part.js:616
+#: part/models.py:825 part/templates/part/part_base.html:281
+#: report/models.py:200 templates/js/translated/part.js:622
msgid "Revision"
msgstr ""
-#: part/models.py:845
+#: part/models.py:847
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:892 part/templates/part/part_base.html:347
+#: part/models.py:894 part/templates/part/part_base.html:347
msgid "Default Supplier"
msgstr ""
-#: part/models.py:893
+#: part/models.py:895
msgid "Default supplier part"
msgstr ""
-#: part/models.py:900
+#: part/models.py:902
msgid "Default Expiry"
msgstr ""
-#: part/models.py:901
+#: part/models.py:903
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:906 part/templates/part/part_base.html:196
+#: part/models.py:908 part/templates/part/part_base.html:196
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:907
+#: part/models.py:909
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:914
+#: part/models.py:916
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:920
+#: part/models.py:922
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:926
+#: part/models.py:928
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:932
+#: part/models.py:934
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:937
+#: part/models.py:939
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:942
+#: part/models.py:944
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:946 plugin/models.py:46
-#: templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:96
-#: templates/js/translated/table_filters.js:295
-#: templates/js/translated/table_filters.js:417
-msgid "Active"
-msgstr ""
-
-#: part/models.py:947
+#: part/models.py:949
msgid "Is this part active?"
msgstr ""
-#: part/models.py:952
+#: part/models.py:954
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:957
+#: part/models.py:959
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:960
+#: part/models.py:962
msgid "BOM checksum"
msgstr ""
-#: part/models.py:960
+#: part/models.py:962
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:963
+#: part/models.py:965
msgid "BOM checked by"
msgstr ""
-#: part/models.py:965
+#: part/models.py:967
msgid "BOM checked date"
msgstr ""
-#: part/models.py:969
+#: part/models.py:971
msgid "Creation User"
msgstr ""
-#: part/models.py:1781
+#: part/models.py:1783
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2326
+#: part/models.py:2333
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2343
+#: part/models.py:2350
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2363 templates/js/translated/part.js:1707
-#: templates/js/translated/stock.js:1276
+#: part/models.py:2370 templates/js/translated/part.js:1714
+#: templates/js/translated/stock.js:1284
msgid "Test Name"
msgstr ""
-#: part/models.py:2364
+#: part/models.py:2371
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2376
msgid "Test Description"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2377
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2375 templates/js/translated/part.js:1716
+#: part/models.py:2382 templates/js/translated/part.js:1723
#: templates/js/translated/table_filters.js:281
msgid "Required"
msgstr ""
-#: part/models.py:2376
+#: part/models.py:2383
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2381 templates/js/translated/part.js:1724
+#: part/models.py:2388 templates/js/translated/part.js:1731
msgid "Requires Value"
msgstr ""
-#: part/models.py:2382
+#: part/models.py:2389
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2387 templates/js/translated/part.js:1731
+#: part/models.py:2394 templates/js/translated/part.js:1738
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2388
+#: part/models.py:2395
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2399
+#: part/models.py:2406
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2435
+#: part/models.py:2442
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2443
+#: part/models.py:2450
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2450
+#: part/models.py:2457
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2480
+#: part/models.py:2487
msgid "Parent Part"
msgstr ""
-#: part/models.py:2482 part/models.py:2531 part/models.py:2532
-#: templates/InvenTree/settings/settings.html:178
+#: part/models.py:2489 part/models.py:2538 part/models.py:2539
+#: templates/InvenTree/settings/settings.html:181
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2484
+#: part/models.py:2491
msgid "Data"
msgstr ""
-#: part/models.py:2484
+#: part/models.py:2491
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2536 templates/InvenTree/settings/settings.html:187
+#: part/models.py:2543 templates/InvenTree/settings/settings.html:190
msgid "Default Value"
msgstr ""
-#: part/models.py:2537
+#: part/models.py:2544
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2614
+#: part/models.py:2621
msgid "Select parent part"
msgstr ""
-#: part/models.py:2622
+#: part/models.py:2629
msgid "Sub part"
msgstr ""
-#: part/models.py:2623
+#: part/models.py:2630
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2629
+#: part/models.py:2636
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2631 templates/js/translated/bom.js:566
-#: templates/js/translated/bom.js:640
+#: part/models.py:2638 templates/js/translated/bom.js:578
+#: templates/js/translated/bom.js:652
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2638
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2634
+#: part/models.py:2641
msgid "Overage"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2642
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2638
+#: part/models.py:2645
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2641
+#: part/models.py:2648
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2643
+#: part/models.py:2650
msgid "Checksum"
msgstr ""
-#: part/models.py:2643
+#: part/models.py:2650
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2647 templates/js/translated/bom.js:657
+#: part/models.py:2654 templates/js/translated/bom.js:669
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2648
+#: part/models.py:2655
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2653 templates/js/translated/bom.js:649
+#: part/models.py:2660 templates/js/translated/bom.js:661
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2654
+#: part/models.py:2661
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2739 stock/models.py:355
+#: part/models.py:2746 stock/models.py:357
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2748 part/models.py:2750
+#: part/models.py:2755 part/models.py:2757
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2879
+#: part/models.py:2886
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2908
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2920
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2928
msgid "Substitute part"
msgstr ""
-#: part/models.py:2932
+#: part/models.py:2939
msgid "Part 1"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2943
msgid "Part 2"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2943
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2968
+#: part/models.py:2975
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4327,7 +4418,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:253
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:270
msgid "BOM actions"
msgstr ""
@@ -4499,7 +4590,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:348
msgid "Duplicate Part"
msgstr ""
@@ -4533,145 +4624,149 @@ msgid "Showing stock for all variants of %(full_name)s"
msgstr ""
#: part/templates/part/detail.html:43
+msgid "Part Stock Allocations"
+msgstr ""
+
+#: part/templates/part/detail.html:60
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:48
+#: part/templates/part/detail.html:65
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:105
+#: part/templates/part/detail.html:122
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:142
+#: part/templates/part/detail.html:159
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:146
+#: part/templates/part/detail.html:163
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:147
+#: part/templates/part/detail.html:164
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:174
+#: part/templates/part/detail.html:191
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:45
+#: part/templates/part/detail.html:228 part/templates/part/part_sidebar.html:49
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:215 part/templates/part/detail.html:216
+#: part/templates/part/detail.html:232 part/templates/part/detail.html:233
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:236 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:253 part/templates/part/part_sidebar.html:17
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:241
+#: part/templates/part/detail.html:258
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:245 templates/js/translated/bom.js:70
+#: part/templates/part/detail.html:262 templates/js/translated/bom.js:70
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:247
+#: part/templates/part/detail.html:264
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:257
+#: part/templates/part/detail.html:274
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:259 templates/js/translated/part.js:272
+#: part/templates/part/detail.html:276 templates/js/translated/part.js:272
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:278
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:266
+#: part/templates/part/detail.html:283
msgid "New BOM Item"
msgstr ""
-#: part/templates/part/detail.html:267
+#: part/templates/part/detail.html:284
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:280
+#: part/templates/part/detail.html:297
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:297
+#: part/templates/part/detail.html:314
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:322
+#: part/templates/part/detail.html:339
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:332
+#: part/templates/part/detail.html:349
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:360
+#: part/templates/part/detail.html:377
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:393
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:558
+#: part/templates/part/detail.html:575
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:559
+#: part/templates/part/detail.html:576
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:608
+#: part/templates/part/detail.html:625
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:652
+#: part/templates/part/detail.html:682
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:660
+#: part/templates/part/detail.html:690
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:755
+#: part/templates/part/detail.html:785
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:812
+#: part/templates/part/detail.html:842
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:925
+#: part/templates/part/detail.html:955
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:937
+#: part/templates/part/detail.html:967
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:949
+#: part/templates/part/detail.html:979
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1038
+#: part/templates/part/detail.html:1068
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4786,7 +4881,7 @@ msgstr ""
#: templates/js/translated/company.js:508
#: templates/js/translated/company.js:765
#: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:527 templates/js/translated/part.js:604
+#: templates/js/translated/part.js:533 templates/js/translated/part.js:610
msgid "Inactive"
msgstr ""
@@ -4805,10 +4900,6 @@ msgstr ""
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1294
-msgid "On Order"
-msgstr ""
-
#: part/templates/part/part_base.html:210 templates/InvenTree/index.html:178
msgid "Required for Build Orders"
msgstr ""
@@ -4821,12 +4912,12 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:678
+#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:690
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1125
-#: templates/js/translated/part.js:1298
+#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1132
+#: templates/js/translated/part.js:1305
msgid "Building"
msgstr ""
@@ -4878,7 +4969,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:632
+#: templates/js/translated/bom.js:644
msgid "No supplier pricing available"
msgstr ""
@@ -4920,7 +5011,12 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/templates/part/part_sidebar.html:41
+#: part/templates/part/part_sidebar.html:31
+#: stock/templates/stock/stock_sidebar.html:8
+msgid "Allocations"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:45
msgid "Test Templates"
msgstr ""
@@ -4993,7 +5089,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:626
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:638
msgid "Supplier Cost"
msgstr ""
@@ -5015,7 +5111,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1690
+#: part/templates/part/prices.html:215 part/views.py:1699
msgid "Add Internal Price Break"
msgstr ""
@@ -5035,9 +5131,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:588
-#: templates/js/translated/part.js:491 templates/js/translated/part.js:1115
-#: templates/js/translated/part.js:1302
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:600
+#: templates/js/translated/part.js:497 templates/js/translated/part.js:1122
+#: templates/js/translated/part.js:1309
msgid "No Stock"
msgstr ""
@@ -5054,116 +5150,116 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:116
+#: part/templatetags/inventree_extras.py:125
msgid "Unknown database"
msgstr ""
-#: part/views.py:92
+#: part/views.py:93
msgid "Set Part Category"
msgstr ""
-#: part/views.py:142
+#: part/views.py:143
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:214
+#: part/views.py:215
msgid "Match References"
msgstr ""
-#: part/views.py:502
+#: part/views.py:511
msgid "None"
msgstr ""
-#: part/views.py:561
+#: part/views.py:570
msgid "Part QR Code"
msgstr ""
-#: part/views.py:663
+#: part/views.py:672
msgid "Select Part Image"
msgstr ""
-#: part/views.py:689
+#: part/views.py:698
msgid "Updated part image"
msgstr ""
-#: part/views.py:692
+#: part/views.py:701
msgid "Part image not found"
msgstr ""
-#: part/views.py:766
+#: part/views.py:775
msgid "Match Parts"
msgstr ""
-#: part/views.py:1101
+#: part/views.py:1110
msgid "Export Bill of Materials"
msgstr ""
-#: part/views.py:1150
+#: part/views.py:1159
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1157
+#: part/views.py:1166
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1166
+#: part/views.py:1175
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1315
+#: part/views.py:1324
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1325
+#: part/views.py:1334
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1332
+#: part/views.py:1341
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1391 templates/js/translated/part.js:315
+#: part/views.py:1400 templates/js/translated/part.js:315
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1429
+#: part/views.py:1438
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1435
+#: part/views.py:1444
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1444
+#: part/views.py:1453
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1545
+#: part/views.py:1554
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1601
+#: part/views.py:1610
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1623
+#: part/views.py:1632
msgid "Added new price break"
msgstr ""
-#: part/views.py:1699
+#: part/views.py:1708
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1707
+#: part/views.py:1716
msgid "Delete Internal Price Break"
msgstr ""
-#: plugin/integration.py:124
+#: plugin/integration.py:138
msgid "No author found"
msgstr ""
-#: plugin/integration.py:136
+#: plugin/integration.py:152
msgid "No date found"
msgstr ""
@@ -5191,7 +5287,7 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:195
+#: plugin/models.py:199
msgid "Plugin"
msgstr ""
@@ -5357,12 +5453,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:517 stock/templates/stock/item_base.html:156
+#: stock/models.py:519 stock/templates/stock/item_base.html:156
#: templates/js/translated/build.js:293 templates/js/translated/build.js:697
#: templates/js/translated/build.js:1073
#: templates/js/translated/model_renderers.js:95
#: templates/js/translated/order.js:99 templates/js/translated/order.js:1945
-#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:415
+#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:423
msgid "Serial Number"
msgstr ""
@@ -5371,19 +5467,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:1948
+#: stock/models.py:1976
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:1954
+#: stock/models.py:1982
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:49
+#: templates/InvenTree/settings/plugin.html:50
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2367
+#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2525
msgid "Date"
msgstr ""
@@ -5396,23 +5492,27 @@ msgid "Fail"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:123
-#: stock/templates/stock/stock_sidebar.html:12
+#: stock/templates/stock/stock_sidebar.html:16
msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:578 templates/js/translated/stock.js:748
-#: templates/js/translated/stock.js:2627
+#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756
+#: templates/js/translated/stock.js:2785
msgid "Serial"
msgstr ""
-#: stock/api.py:478
+#: stock/api.py:476
msgid "Quantity is required"
msgstr ""
-#: stock/forms.py:77 stock/forms.py:251 stock/models.py:574
+#: stock/api.py:483
+msgid "Valid part must be supplied"
+msgstr ""
+
+#: stock/forms.py:77 stock/forms.py:251 stock/models.py:576
#: stock/templates/stock/item_base.html:193
-#: templates/js/translated/stock.js:1701
+#: templates/js/translated/stock.js:1709
msgid "Expiry Date"
msgstr ""
@@ -5460,228 +5560,228 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:60 stock/models.py:611
+#: stock/models.py:62 stock/models.py:613
#: stock/templates/stock/item_base.html:416
msgid "Owner"
msgstr ""
-#: stock/models.py:61 stock/models.py:612
+#: stock/models.py:63 stock/models.py:614
msgid "Select Owner"
msgstr ""
-#: stock/models.py:336
+#: stock/models.py:338
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:372
+#: stock/models.py:374
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:382 stock/models.py:391
+#: stock/models.py:384 stock/models.py:393
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:383
+#: stock/models.py:385
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:405
+#: stock/models.py:407
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:413
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:418
+#: stock/models.py:420
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:461
+#: stock/models.py:463
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:470
+#: stock/models.py:472
msgid "Base part"
msgstr ""
-#: stock/models.py:478
+#: stock/models.py:480
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:484 stock/templates/stock/location.html:16
+#: stock/models.py:486 stock/templates/stock/location.html:16
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:487
+#: stock/models.py:489
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:494
+#: stock/models.py:496
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:500 stock/templates/stock/item_base.html:298
+#: stock/models.py:502 stock/templates/stock/item_base.html:298
msgid "Installed In"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:505
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:521
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:535
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:537
+#: stock/models.py:539
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:546
+#: stock/models.py:548
msgid "Source Build"
msgstr ""
-#: stock/models.py:548
+#: stock/models.py:550
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:559
+#: stock/models.py:561
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:562
+#: stock/models.py:564
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:568
+#: stock/models.py:570
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:575
+#: stock/models.py:577
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:588
+#: stock/models.py:590
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:588
+#: stock/models.py:590
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:598 stock/templates/stock/item.html:111
+#: stock/models.py:600 stock/templates/stock/item.html:128
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:607
+#: stock/models.py:609
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1068
+#: stock/models.py:1096
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1074
+#: stock/models.py:1102
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1080
+#: stock/models.py:1108
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1083
+#: stock/models.py:1111
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1086
+#: stock/models.py:1114
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1093
+#: stock/models.py:1121
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1164
+#: stock/models.py:1192
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1167
+#: stock/models.py:1195
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1170
+#: stock/models.py:1198
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1173
+#: stock/models.py:1201
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1176
+#: stock/models.py:1204
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1179
+#: stock/models.py:1207
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1186 stock/serializers.py:774
+#: stock/models.py:1214 stock/serializers.py:775
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1190
+#: stock/models.py:1218
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1194
+#: stock/models.py:1222
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1198
+#: stock/models.py:1226
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1369
+#: stock/models.py:1397
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1868
+#: stock/models.py:1896
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1925
+#: stock/models.py:1953
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1931
+#: stock/models.py:1959
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1949
+#: stock/models.py:1977
msgid "Test name"
msgstr ""
-#: stock/models.py:1955 templates/js/translated/table_filters.js:271
+#: stock/models.py:1983 templates/js/translated/table_filters.js:271
msgid "Test result"
msgstr ""
-#: stock/models.py:1961
+#: stock/models.py:1989
msgid "Test output value"
msgstr ""
-#: stock/models.py:1968
+#: stock/models.py:1996
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1974
+#: stock/models.py:2002
msgid "Test notes"
msgstr ""
@@ -5706,7 +5806,7 @@ msgstr ""
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:326 stock/serializers.py:731 stock/serializers.py:972
+#: stock/serializers.py:326 stock/serializers.py:732 stock/serializers.py:973
msgid "Destination stock location"
msgstr ""
@@ -5718,63 +5818,63 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:588
+#: stock/serializers.py:589
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:592
+#: stock/serializers.py:593
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:597
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:626
+#: stock/serializers.py:627
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:632
+#: stock/serializers.py:633
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:640
+#: stock/serializers.py:641
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:650 stock/serializers.py:880
+#: stock/serializers.py:651 stock/serializers.py:881
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:738
+#: stock/serializers.py:739
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:743
+#: stock/serializers.py:744
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:744
+#: stock/serializers.py:745
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:749
+#: stock/serializers.py:750
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:750
+#: stock/serializers.py:751
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:760
+#: stock/serializers.py:761
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:842
+#: stock/serializers.py:843
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:870
+#: stock/serializers.py:871
msgid "Stock transaction notes"
msgstr ""
@@ -5787,47 +5887,51 @@ msgid "New Entry"
msgstr ""
#: stock/templates/stock/item.html:48
-msgid "Child Stock Items"
-msgstr ""
-
-#: stock/templates/stock/item.html:55
-msgid "This stock item does not have any child items"
+msgid "Stock Item Allocations"
msgstr ""
#: stock/templates/stock/item.html:64
-#: stock/templates/stock/stock_sidebar.html:8
-msgid "Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:57
-msgid "Test Report"
+msgid "Child Stock Items"
msgstr ""
#: stock/templates/stock/item.html:72
+msgid "This stock item does not have any child items"
+msgstr ""
+
+#: stock/templates/stock/item.html:81
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:57
+msgid "Test Report"
+msgstr ""
+
+#: stock/templates/stock/item.html:89
msgid "Delete Test Data"
msgstr ""
-#: stock/templates/stock/item.html:76
+#: stock/templates/stock/item.html:93
msgid "Add Test Data"
msgstr ""
-#: stock/templates/stock/item.html:133
+#: stock/templates/stock/item.html:150
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:137 stock/views.py:482
+#: stock/templates/stock/item.html:154 stock/views.py:482
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304
+#: stock/templates/stock/item.html:309 stock/templates/stock/item.html:334
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:324
+#: stock/templates/stock/item.html:354
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:338
+#: stock/templates/stock/item.html:368
msgid "Delete Test Result"
msgstr ""
@@ -5952,7 +6056,7 @@ msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:206
-#: templates/js/translated/stock.js:1714
+#: templates/js/translated/stock.js:1722
msgid "Last Updated"
msgstr ""
@@ -6111,7 +6215,7 @@ msgid "Sublocations"
msgstr ""
#: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164
-#: templates/stats.html:97 users/models.py:42
+#: templates/stats.html:109 users/models.py:42
msgid "Stock Locations"
msgstr ""
@@ -6135,7 +6239,7 @@ msgstr ""
msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/stock_sidebar.html:16
+#: stock/templates/stock/stock_sidebar.html:20
msgid "Child Items"
msgstr ""
@@ -6164,7 +6268,7 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:162
+#: stock/views.py:162 templates/js/translated/stock.js:139
msgid "Edit Stock Location"
msgstr ""
@@ -6204,7 +6308,7 @@ msgstr ""
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:727 templates/js/translated/stock.js:1066
+#: stock/views.py:727 templates/js/translated/stock.js:1074
msgid "Confirm stock adjustment"
msgstr ""
@@ -6212,7 +6316,7 @@ msgstr ""
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:324
+#: stock/views.py:760 templates/js/translated/stock.js:332
msgid "Edit Stock Item"
msgstr ""
@@ -6224,7 +6328,7 @@ msgstr ""
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1153 templates/js/translated/stock.js:304
+#: stock/views.py:1153 templates/js/translated/stock.js:312
msgid "Duplicate Stock Item"
msgstr ""
@@ -6268,6 +6372,18 @@ msgstr ""
msgid "The requested page does not exist"
msgstr ""
+#: templates/500.html:5 templates/500.html:11
+msgid "Internal Server Error"
+msgstr ""
+
+#: templates/500.html:14
+msgid "The InvenTree server raised an internal error"
+msgstr ""
+
+#: templates/500.html:15
+msgid "Refer to the error log in the admin interface for further details"
+msgstr ""
+
#: templates/503.html:10 templates/503.html:35
msgid "Site is in Maintenance"
msgstr ""
@@ -6390,7 +6506,7 @@ msgid "Signup"
msgstr ""
#: templates/InvenTree/settings/mixins/settings.html:5
-#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:118
+#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113
msgid "Settings"
msgstr ""
@@ -6431,43 +6547,43 @@ msgstr ""
msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage."
msgstr ""
-#: templates/InvenTree/settings/plugin.html:32
+#: templates/InvenTree/settings/plugin.html:33
msgid "Plugins"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:37
+#: templates/InvenTree/settings/plugin.html:38
#: templates/js/translated/plugin.js:15
msgid "Install Plugin"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:46 templates/navbar.html:111
+#: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111
#: users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin.html:49
#: templates/InvenTree/settings/plugin_settings.html:28
msgid "Author"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:50
+#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin_settings.html:43
msgid "Version"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:91
+#: templates/InvenTree/settings/plugin.html:92
msgid "Inactive plugins"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:114
+#: templates/InvenTree/settings/plugin.html:115
msgid "Plugin Error Stack"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:123
+#: templates/InvenTree/settings/plugin.html:124
msgid "Stage"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:125
+#: templates/InvenTree/settings/plugin.html:126
msgid "Message"
msgstr ""
@@ -6555,37 +6671,37 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:75
+#: templates/InvenTree/settings/settings.html:78
msgid "Edit Plugin Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:77
+#: templates/InvenTree/settings/settings.html:80
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:79
+#: templates/InvenTree/settings/settings.html:82
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:168
+#: templates/InvenTree/settings/settings.html:171
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:190
-#: templates/InvenTree/settings/settings.html:289
+#: templates/InvenTree/settings/settings.html:193
+#: templates/InvenTree/settings/settings.html:292
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:191
-#: templates/InvenTree/settings/settings.html:290
+#: templates/InvenTree/settings/settings.html:194
+#: templates/InvenTree/settings/settings.html:293
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:269
+#: templates/InvenTree/settings/settings.html:272
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:273
+#: templates/InvenTree/settings/settings.html:276
msgid "ID"
msgstr ""
@@ -6763,124 +6879,105 @@ msgstr ""
msgid "Remove multifactor"
msgstr ""
-#: templates/InvenTree/settings/user.html:219
+#: templates/InvenTree/settings/user.html:220
+msgid "Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:226
+msgid "Log out active sessions (except this one)"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:227
+msgid "Log Out Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:236
+msgid "unknown on unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:237
+msgid "unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:241
+msgid "IP Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:242
+msgid "Device"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:243
+msgid "Last Activity"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:252
+#, python-format
+msgid "%(time)s ago (this session)"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:254
+#, python-format
+msgid "%(time)s ago"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:266
+msgid "Do you really want to remove the selected email address?"
+msgstr ""
+
#: templates/InvenTree/settings/user_display.html:25
msgid "Theme Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:227
#: templates/InvenTree/settings/user_display.html:35
msgid "Select theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:237
#: templates/InvenTree/settings/user_display.html:46
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:246
#: templates/InvenTree/settings/user_display.html:54
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:254
#: templates/InvenTree/settings/user_display.html:63
msgid "Select language"
msgstr ""
-#: templates/InvenTree/settings/user.html:270
#: templates/InvenTree/settings/user_display.html:79
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:272
#: templates/InvenTree/settings/user_display.html:81
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:279
#: templates/InvenTree/settings/user_display.html:88
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:281
#: templates/InvenTree/settings/user_display.html:91
msgid "Some languages are not complete"
msgstr ""
-#: templates/InvenTree/settings/user.html:283
#: templates/InvenTree/settings/user_display.html:93
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user.html:285
+#: templates/InvenTree/settings/user_display.html:95
+msgid "and hidden."
+msgstr ""
+
#: templates/InvenTree/settings/user_display.html:95
msgid "Show them too"
msgstr ""
-#: templates/InvenTree/settings/user.html:292
#: templates/InvenTree/settings/user_display.html:101
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user.html:293
-#, python-format
-msgid "Native language translation of the\n"
-" InvenTree web application is community contributed via crowdin. Contributions are\n"
-" welcomed and encouraged."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:302
-msgid "Active Sessions"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:308
-msgid "Log out active sessions (except this one)"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:309
-msgid "Log Out Active Sessions"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:318
-msgid "unknown on unknown"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:319
-msgid "unknown"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:323
-msgid "IP Address"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:324
-msgid "Device"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:325
-msgid "Last Activity"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:334
-#, python-format
-msgid "%(time)s ago (this session)"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:336
-#, python-format
-msgid "%(time)s ago"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:348
-msgid "Do you really want to remove the selected email address?"
-msgstr ""
-
-#: templates/InvenTree/settings/user_display.html:95
-msgid "and hidden."
-msgstr ""
-
#: templates/InvenTree/settings/user_display.html:102
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
@@ -6899,9 +6996,9 @@ msgid "InvenTree Version Information"
msgstr ""
#: templates/about.html:11 templates/about.html:105
-#: templates/js/translated/bom.js:395 templates/js/translated/modals.js:53
-#: templates/js/translated/modals.js:573 templates/js/translated/modals.js:667
-#: templates/js/translated/modals.js:970 templates/modals.html:15
+#: templates/js/translated/bom.js:407 templates/js/translated/modals.js:53
+#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
+#: templates/js/translated/modals.js:983 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -7178,13 +7275,13 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1103
+#: templates/js/translated/bom.js:1117
msgid "Required Quantity"
msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:579 templates/js/translated/build.js:1189
+#: templates/js/translated/bom.js:591 templates/js/translated/build.js:1189
#: templates/js/translated/build.js:1810
#: templates/js/translated/table_filters.js:178
msgid "Available"
@@ -7208,10 +7305,6 @@ msgstr ""
msgid "Click on the following link to view this part"
msgstr ""
-#: templates/email/low_stock_notification.html:17
-msgid "Total Stock"
-msgstr ""
-
#: templates/email/low_stock_notification.html:19
msgid "Minimum Quantity"
msgstr ""
@@ -7232,11 +7325,11 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1040
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1053
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1041
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1054
msgid "No response from the InvenTree server"
msgstr ""
@@ -7248,27 +7341,27 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1063
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1051
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1064
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1068
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1056
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1069
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1073
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1061
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1074
msgid "The requested resource could not be located on the server"
msgstr ""
@@ -7280,11 +7373,11 @@ msgstr ""
msgid "HTTP method not allowed at URL"
msgstr ""
-#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1065
+#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1078
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1079
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -7353,7 +7446,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:140
-#: templates/js/translated/modals.js:1030
+#: templates/js/translated/modals.js:1043
msgid "Invalid server response"
msgstr ""
@@ -7381,7 +7474,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1018
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026
msgid "Remove stock item"
msgstr ""
@@ -7428,12 +7521,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73
-#: templates/js/translated/order.js:369 templates/js/translated/stock.js:510
+#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74
-#: templates/js/translated/order.js:370 templates/js/translated/stock.js:511
+#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519
msgid "Select file format"
msgstr ""
@@ -7489,87 +7582,87 @@ msgstr ""
msgid "Remove substitute part"
msgstr ""
-#: templates/js/translated/bom.js:340
-msgid "Select and add a new variant item using the input below"
+#: templates/js/translated/bom.js:352
+msgid "Select and add a new substitute part using the input below"
msgstr ""
-#: templates/js/translated/bom.js:351
+#: templates/js/translated/bom.js:363
msgid "Are you sure you wish to remove this substitute part link?"
msgstr ""
-#: templates/js/translated/bom.js:357
+#: templates/js/translated/bom.js:369
msgid "Remove Substitute Part"
msgstr ""
-#: templates/js/translated/bom.js:396
+#: templates/js/translated/bom.js:408
msgid "Add Substitute"
msgstr ""
-#: templates/js/translated/bom.js:397
+#: templates/js/translated/bom.js:409
msgid "Edit BOM Item Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:516
+#: templates/js/translated/bom.js:528
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:520 templates/js/translated/build.js:1171
+#: templates/js/translated/bom.js:532 templates/js/translated/build.js:1171
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:525
+#: templates/js/translated/bom.js:537
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:597
+#: templates/js/translated/bom.js:609
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:612
+#: templates/js/translated/bom.js:624
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:619
+#: templates/js/translated/bom.js:631
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:668 templates/js/translated/bom.js:757
+#: templates/js/translated/bom.js:680 templates/js/translated/bom.js:769
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:728
+#: templates/js/translated/bom.js:740
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:730
+#: templates/js/translated/bom.js:742
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:732
+#: templates/js/translated/bom.js:744
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:734 templates/js/translated/bom.js:908
+#: templates/js/translated/bom.js:746 templates/js/translated/bom.js:920
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:736 templates/js/translated/bom.js:891
+#: templates/js/translated/bom.js:748 templates/js/translated/bom.js:903
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:830 templates/js/translated/build.js:915
+#: templates/js/translated/bom.js:842 templates/js/translated/build.js:915
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:886
+#: templates/js/translated/bom.js:898
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:1086 templates/js/translated/build.js:1155
+#: templates/js/translated/bom.js:1100 templates/js/translated/build.js:1155
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1108
+#: templates/js/translated/bom.js:1122
msgid "Inherited from parent BOM"
msgstr ""
@@ -7725,9 +7818,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1206
-#: templates/js/translated/part.js:1617 templates/js/translated/stock.js:1512
-#: templates/js/translated/stock.js:2321
+#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1213
+#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1520
+#: templates/js/translated/stock.js:2479
msgid "Select"
msgstr ""
@@ -7735,7 +7828,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2540
+#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2698
msgid "No user information"
msgstr ""
@@ -7808,34 +7901,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:511
-#: templates/js/translated/part.js:596
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:517
+#: templates/js/translated/part.js:602
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:515
-#: templates/js/translated/part.js:600
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:521
+#: templates/js/translated/part.js:606
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:690
+#: templates/js/translated/company.js:631 templates/js/translated/part.js:696
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:732
+#: templates/js/translated/company.js:668 templates/js/translated/part.js:738
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:733
+#: templates/js/translated/company.js:669 templates/js/translated/part.js:739
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:750
+#: templates/js/translated/company.js:688 templates/js/translated/part.js:756
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:762
+#: templates/js/translated/company.js:699 templates/js/translated/part.js:768
msgid "Delete Parameter"
msgstr ""
@@ -7844,12 +7937,12 @@ msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:420
+#: templates/js/translated/filters.js:429
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:421
+#: templates/js/translated/filters.js:430
msgid "false"
msgstr ""
@@ -7869,7 +7962,7 @@ msgstr ""
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:329
+#: templates/js/translated/filters.js:338
msgid "Create filter"
msgstr ""
@@ -7898,20 +7991,20 @@ msgstr ""
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1080 templates/modals.html:19
+#: templates/js/translated/forms.js:1082 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1471
+#: templates/js/translated/forms.js:1487
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1675
+#: templates/js/translated/forms.js:1691
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1895
+#: templates/js/translated/forms.js:1930
msgid "Clear input"
msgstr ""
@@ -7924,7 +8017,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1042
+#: templates/js/translated/stock.js:1050
msgid "Select Stock Items"
msgstr ""
@@ -7974,12 +8067,12 @@ msgid "Select Label Template"
msgstr ""
#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
-#: templates/js/translated/modals.js:599
+#: templates/js/translated/modals.js:610
msgid "Cancel"
msgstr ""
#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:666 templates/js/translated/modals.js:969
+#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:982
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
@@ -7988,47 +8081,47 @@ msgstr ""
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:381
+#: templates/js/translated/modals.js:392
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:540
+#: templates/js/translated/modals.js:551
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:598
+#: templates/js/translated/modals.js:609
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:655
+#: templates/js/translated/modals.js:666
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:921
+#: templates/js/translated/modals.js:934
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:921
+#: templates/js/translated/modals.js:934
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:946
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1030
+#: templates/js/translated/modals.js:1043
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1045
+#: templates/js/translated/modals.js:1058
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1046
+#: templates/js/translated/modals.js:1059
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1069
+#: templates/js/translated/modals.js:1082
msgid "Error requesting form data"
msgstr ""
@@ -8052,23 +8145,24 @@ msgstr ""
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:236
+#: templates/js/translated/model_renderers.js:249
+#: templates/js/translated/model_renderers.js:270
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:253
+#: templates/js/translated/model_renderers.js:287
msgid "Shipment ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:273
+#: templates/js/translated/model_renderers.js:307
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:310
+#: templates/js/translated/model_renderers.js:344
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:339
+#: templates/js/translated/model_renderers.js:373
msgid "Supplier Part ID"
msgstr ""
@@ -8116,7 +8210,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2123
+#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2131
msgid "Stock Status"
msgstr ""
@@ -8140,7 +8234,7 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:790 templates/js/translated/part.js:803
+#: templates/js/translated/order.js:790 templates/js/translated/part.js:809
msgid "No purchase orders found"
msgstr ""
@@ -8165,7 +8259,7 @@ msgid "Total"
msgstr ""
#: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163
-#: templates/js/translated/part.js:1834 templates/js/translated/part.js:2045
+#: templates/js/translated/part.js:1841 templates/js/translated/part.js:2052
msgid "Unit Price"
msgstr ""
@@ -8181,7 +8275,7 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1166 templates/js/translated/part.js:935
+#: templates/js/translated/order.js:1166 templates/js/translated/part.js:942
msgid "Receive line item"
msgstr ""
@@ -8250,7 +8344,7 @@ msgid "Delete Stock Allocation"
msgstr ""
#: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048
-#: templates/js/translated/stock.js:1428
+#: templates/js/translated/stock.js:1436
msgid "Shipped to customer"
msgstr ""
@@ -8378,144 +8472,148 @@ msgstr ""
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:412
+#: templates/js/translated/part.js:351
+msgid "Create Part Variant"
+msgstr ""
+
+#: templates/js/translated/part.js:418
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:414
+#: templates/js/translated/part.js:420
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:419
+#: templates/js/translated/part.js:425
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:421
+#: templates/js/translated/part.js:427
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:438
+#: templates/js/translated/part.js:444
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:448
+#: templates/js/translated/part.js:454
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:451
+#: templates/js/translated/part.js:457
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:475
+#: templates/js/translated/part.js:481
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:503 templates/js/translated/part.js:588
+#: templates/js/translated/part.js:509 templates/js/translated/part.js:594
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:507 templates/js/translated/part.js:592
+#: templates/js/translated/part.js:513 templates/js/translated/part.js:598
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:519
+#: templates/js/translated/part.js:525
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:529
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:638
+#: templates/js/translated/part.js:644
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1005
+#: templates/js/translated/part.js:1012
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1029
+#: templates/js/translated/part.js:1036
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1096 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:1363
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1266
+#: templates/js/translated/part.js:1273
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1289
+#: templates/js/translated/part.js:1296
#: templates/js/translated/table_filters.js:430
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1380 templates/js/translated/part.js:1552
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559
+#: templates/js/translated/stock.js:2440
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1396
+#: templates/js/translated/part.js:1403
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1571 templates/js/translated/stock.js:2301
+#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2459
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1635
+#: templates/js/translated/part.js:1642
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1649 templates/js/translated/stock.js:2345
+#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2503
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1693
+#: templates/js/translated/part.js:1700
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1744 templates/js/translated/stock.js:1234
+#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1242
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1745 templates/js/translated/stock.js:1235
+#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1243
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1751
+#: templates/js/translated/part.js:1758
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1773
+#: templates/js/translated/part.js:1780
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1787
+#: templates/js/translated/part.js:1794
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1812
+#: templates/js/translated/part.js:1819
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1867
+#: templates/js/translated/part.js:1874
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1868
+#: templates/js/translated/part.js:1875
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1969
+#: templates/js/translated/part.js:1976
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1988
+#: templates/js/translated/part.js:1995
msgid "Single Price Difference"
msgstr ""
@@ -8589,340 +8687,344 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:73
+#: templates/js/translated/stock.js:74
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:173
+#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:181
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/stock.js:93 templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:94 templates/js/translated/stock.js:183
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/stock.js:101
+#: templates/js/translated/stock.js:102
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:110
+#: templates/js/translated/stock.js:111
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:146
+#: templates/js/translated/stock.js:154
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:186
+#: templates/js/translated/stock.js:194
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:225
+#: templates/js/translated/stock.js:233
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:231
+#: templates/js/translated/stock.js:239
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:374
+#: templates/js/translated/stock.js:382
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:387
+#: templates/js/translated/stock.js:395
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:412
+#: templates/js/translated/stock.js:420
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:416 templates/js/translated/stock.js:417
+#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:433
+#: templates/js/translated/stock.js:441
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:453
+#: templates/js/translated/stock.js:461
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:462
+#: templates/js/translated/stock.js:470
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:507
+#: templates/js/translated/stock.js:515
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:518
+#: templates/js/translated/stock.js:526
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:527
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:628
+#: templates/js/translated/stock.js:636
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:629
+#: templates/js/translated/stock.js:637
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:706
+#: templates/js/translated/stock.js:714
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:707
+#: templates/js/translated/stock.js:715
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:709
+#: templates/js/translated/stock.js:717
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:710
+#: templates/js/translated/stock.js:718
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:796
+#: templates/js/translated/stock.js:804
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:797
+#: templates/js/translated/stock.js:805
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:892
+#: templates/js/translated/stock.js:900
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:893
+#: templates/js/translated/stock.js:901
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:899
+#: templates/js/translated/stock.js:907
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:900
+#: templates/js/translated/stock.js:908
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:904
+#: templates/js/translated/stock.js:912
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:905
+#: templates/js/translated/stock.js:913
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:909
+#: templates/js/translated/stock.js:917
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:910 users/models.py:206
+#: templates/js/translated/stock.js:918 users/models.py:208
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:914 templates/stock_table.html:58
+#: templates/js/translated/stock.js:922 templates/stock_table.html:58
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1003
+#: templates/js/translated/stock.js:1011
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1003
+#: templates/js/translated/stock.js:1011
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1043
+#: templates/js/translated/stock.js:1051
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1201
+#: templates/js/translated/stock.js:1209
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1211
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1208
+#: templates/js/translated/stock.js:1216
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1230
+#: templates/js/translated/stock.js:1238
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1256
+#: templates/js/translated/stock.js:1264
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1313
+#: templates/js/translated/stock.js:1321
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1420
+#: templates/js/translated/stock.js:1428
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1424
+#: templates/js/translated/stock.js:1432
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1432
+#: templates/js/translated/stock.js:1440
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1438
+#: templates/js/translated/stock.js:1446
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1596
+#: templates/js/translated/stock.js:1604
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1601
+#: templates/js/translated/stock.js:1609
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1612
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/stock.js:1616
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1610
+#: templates/js/translated/stock.js:1618
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1616
+#: templates/js/translated/stock.js:1624
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1626
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1620
+#: templates/js/translated/stock.js:1628
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1625
+#: templates/js/translated/stock.js:1633
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1632
+#: templates/js/translated/stock.js:1640
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1634
+#: templates/js/translated/stock.js:1642
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1644
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1640
+#: templates/js/translated/stock.js:1648
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1698
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1763
+#: templates/js/translated/stock.js:1771
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1801
+#: templates/js/translated/stock.js:1809
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1822 templates/js/translated/stock.js:1870
+#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:1878
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1910
+#: templates/js/translated/stock.js:1918
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1937
+#: templates/js/translated/stock.js:1945
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1939
+#: templates/js/translated/stock.js:1947
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:2138
+#: templates/js/translated/stock.js:2146
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2152
+#: templates/js/translated/stock.js:2160
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2153
+#: templates/js/translated/stock.js:2161
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2377
+#: templates/js/translated/stock.js:2340
+msgid "Allocated Quantity"
+msgstr ""
+
+#: templates/js/translated/stock.js:2535
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:2399
+#: templates/js/translated/stock.js:2557
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2424
+#: templates/js/translated/stock.js:2582
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2443
+#: templates/js/translated/stock.js:2601
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2462
+#: templates/js/translated/stock.js:2620
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2480
+#: templates/js/translated/stock.js:2638
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2503
+#: templates/js/translated/stock.js:2661
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2511
+#: templates/js/translated/stock.js:2669
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2552
+#: templates/js/translated/stock.js:2710
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2553
+#: templates/js/translated/stock.js:2711
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2604
+#: templates/js/translated/stock.js:2762
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2655
+#: templates/js/translated/stock.js:2813
msgid "Uninstall Stock Item"
msgstr ""
@@ -9194,11 +9296,11 @@ msgstr ""
msgid "Sell"
msgstr ""
-#: templates/navbar.html:113
+#: templates/navbar.html:114
msgid "Logout"
msgstr ""
-#: templates/navbar.html:115
+#: templates/navbar.html:116
msgid "Login"
msgstr ""
@@ -9246,31 +9348,43 @@ msgstr ""
msgid "Server is deployed using docker"
msgstr ""
-#: templates/stats.html:40
-msgid "Server status"
+#: templates/stats.html:39
+msgid "Plugin Support"
msgstr ""
#: templates/stats.html:43
-msgid "Healthy"
+msgid "Plugin support enabled"
msgstr ""
#: templates/stats.html:45
-msgid "Issues detected"
+msgid "Plugin support disabled"
msgstr ""
#: templates/stats.html:52
-msgid "Background Worker"
+msgid "Server status"
msgstr ""
#: templates/stats.html:55
+msgid "Healthy"
+msgstr ""
+
+#: templates/stats.html:57
+msgid "Issues detected"
+msgstr ""
+
+#: templates/stats.html:64
+msgid "Background Worker"
+msgstr ""
+
+#: templates/stats.html:67
msgid "Background worker not running"
msgstr ""
-#: templates/stats.html:63
+#: templates/stats.html:75
msgid "Email Settings"
msgstr ""
-#: templates/stats.html:66
+#: templates/stats.html:78
msgid "Email settings not configured"
msgstr ""
@@ -9366,35 +9480,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:193
+#: users/models.py:195
msgid "Permission set"
msgstr ""
-#: users/models.py:201
+#: users/models.py:203
msgid "Group"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
msgid "View"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
msgid "Permission to view items"
msgstr ""
-#: users/models.py:206
+#: users/models.py:208
msgid "Permission to add items"
msgstr ""
-#: users/models.py:208
+#: users/models.py:210
msgid "Change"
msgstr ""
-#: users/models.py:208
+#: users/models.py:210
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:210
+#: users/models.py:212
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.po b/InvenTree/locale/ru/LC_MESSAGES/django.po
index 4a369c47ae..0f1af70cb7 100644
--- a/InvenTree/locale/ru/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ru/LC_MESSAGES/django.po
@@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-01-10 03:54+0000\n"
-"PO-Revision-Date: 2022-01-10 03:58\n"
+"POT-Creation-Date: 2022-01-29 00:17+0000\n"
+"PO-Revision-Date: 2022-01-29 01:11\n"
"Last-Translator: \n"
"Language-Team: Russian\n"
"Language: ru_RU\n"
@@ -18,15 +18,15 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 138\n"
-#: InvenTree/api.py:64
+#: InvenTree/api.py:55
msgid "API endpoint not found"
msgstr "Конечная точка API не обнаружена"
-#: InvenTree/api.py:110
+#: InvenTree/api.py:101
msgid "No action specified"
msgstr "Действие не указано"
-#: InvenTree/api.py:124
+#: InvenTree/api.py:116
msgid "No matching action found"
msgstr "Соответствующее действие не найдено"
@@ -80,41 +80,41 @@ msgstr "Подтверждение адреса электронной почт
msgid "You must type the same email each time."
msgstr "Вы должны вводить один и тот же адрес электронной почты."
-#: InvenTree/helpers.py:437
+#: InvenTree/helpers.py:439
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr "Дублировать серийный номер: {n}"
-#: InvenTree/helpers.py:444 order/models.py:279 order/models.py:420
+#: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425
#: stock/views.py:1231
msgid "Invalid quantity provided"
msgstr "недопустимое количество"
-#: InvenTree/helpers.py:447
+#: InvenTree/helpers.py:449
msgid "Empty serial number string"
msgstr "Пустая строка серийного номера"
-#: InvenTree/helpers.py:469 InvenTree/helpers.py:472 InvenTree/helpers.py:475
-#: InvenTree/helpers.py:500
+#: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477
+#: InvenTree/helpers.py:502
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Некорректный идентификатор группы {g}"
-#: InvenTree/helpers.py:510
+#: InvenTree/helpers.py:512
#, python-brace-format
msgid "Invalid group {group}"
-msgstr ""
+msgstr "Недопустимая группа {group}"
-#: InvenTree/helpers.py:516
+#: InvenTree/helpers.py:518
#, python-brace-format
msgid "Invalid/no group {group}"
-msgstr ""
+msgstr "Недопустимая/несуществующая группа {group}"
-#: InvenTree/helpers.py:522
+#: InvenTree/helpers.py:524
msgid "No serial numbers found"
msgstr "Серийных номеров не найдено"
-#: InvenTree/helpers.py:526
+#: InvenTree/helpers.py:528
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Число уникальных серийных номеров ({s}) должно соответствовать количеству ({q})"
@@ -127,7 +127,7 @@ msgstr "Файл не найден"
msgid "Missing external link"
msgstr "Отсутствует внешняя ссылка"
-#: InvenTree/models.py:132 stock/models.py:1967
+#: InvenTree/models.py:132 stock/models.py:1995
#: templates/js/translated/attachment.js:119
msgid "Attachment"
msgstr "Вложения"
@@ -137,15 +137,15 @@ msgid "Select file to attach"
msgstr "Выберите файл для вложения"
#: InvenTree/models.py:139 company/models.py:131 company/models.py:348
-#: company/models.py:564 order/models.py:124 part/models.py:828
+#: company/models.py:564 order/models.py:127 part/models.py:830
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1317
+#: templates/js/translated/company.js:829 templates/js/translated/part.js:1324
msgid "Link"
msgstr "Ссылка"
-#: InvenTree/models.py:140 build/models.py:330 part/models.py:829
-#: stock/models.py:527
+#: InvenTree/models.py:140 build/models.py:332 part/models.py:831
+#: stock/models.py:529
msgid "Link to external URL"
msgstr "Ссылка на внешний URL"
@@ -157,10 +157,11 @@ msgstr "Комментарий"
msgid "File comment"
msgstr "Комментарий к файлу"
-#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213
-#: common/models.py:1214 part/models.py:2258 part/models.py:2278
+#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1223
+#: common/models.py:1224 common/models.py:1452 common/models.py:1453
+#: part/models.py:2265 part/models.py:2285
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2534
+#: templates/js/translated/stock.js:2692
msgid "User"
msgstr "Пользователь"
@@ -197,42 +198,42 @@ msgstr "Ошибка переименования файла"
msgid "Invalid choice"
msgstr "Неверный выбор"
-#: InvenTree/models.py:277 InvenTree/models.py:278 company/models.py:415
-#: label/models.py:112 part/models.py:772 part/models.py:2442
-#: plugin/models.py:40 report/models.py:181
+#: InvenTree/models.py:277 InvenTree/models.py:278 common/models.py:1438
+#: company/models.py:415 label/models.py:112 part/models.py:774
+#: part/models.py:2449 plugin/models.py:40 report/models.py:181
#: templates/InvenTree/settings/mixins/urls.html:13
-#: templates/InvenTree/settings/plugin.html:47
-#: templates/InvenTree/settings/plugin.html:124
+#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin.html:125
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:279
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:561
-#: templates/js/translated/part.js:700 templates/js/translated/part.js:1624
-#: templates/js/translated/stock.js:2327
+#: templates/InvenTree/settings/settings.html:282
+#: templates/js/translated/company.js:641 templates/js/translated/part.js:567
+#: templates/js/translated/part.js:706 templates/js/translated/part.js:1631
+#: templates/js/translated/stock.js:2485
msgid "Name"
msgstr "Название"
-#: InvenTree/models.py:284 build/models.py:207
+#: InvenTree/models.py:284 build/models.py:209
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:73 label/models.py:119
-#: order/models.py:122 part/models.py:795 part/templates/part/category.html:74
+#: order/models.py:125 part/models.py:797 part/templates/part/category.html:74
#: part/templates/part/part_base.html:163
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:93
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:327 templates/js/translated/bom.js:540
+#: templates/js/translated/bom.js:339 templates/js/translated/bom.js:552
#: templates/js/translated/build.js:1682 templates/js/translated/company.js:345
#: templates/js/translated/company.js:551
#: templates/js/translated/company.js:840 templates/js/translated/order.js:836
#: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258
-#: templates/js/translated/part.js:620 templates/js/translated/part.js:992
-#: templates/js/translated/part.js:1077 templates/js/translated/part.js:1247
-#: templates/js/translated/part.js:1643 templates/js/translated/part.js:1712
-#: templates/js/translated/stock.js:1569 templates/js/translated/stock.js:2339
-#: templates/js/translated/stock.js:2384
+#: templates/js/translated/part.js:626 templates/js/translated/part.js:999
+#: templates/js/translated/part.js:1084 templates/js/translated/part.js:1254
+#: templates/js/translated/part.js:1650 templates/js/translated/part.js:1719
+#: templates/js/translated/stock.js:1577 templates/js/translated/stock.js:2314
+#: templates/js/translated/stock.js:2497 templates/js/translated/stock.js:2542
msgid "Description"
msgstr "Описание"
@@ -244,7 +245,7 @@ msgstr "Описание (необязательно)"
msgid "parent"
msgstr "родитель"
-#: InvenTree/serializers.py:65 part/models.py:2727
+#: InvenTree/serializers.py:65 part/models.py:2734
msgid "Must be a valid number"
msgstr "Должно быть действительным номером"
@@ -252,83 +253,83 @@ msgstr "Должно быть действительным номером"
msgid "Filename"
msgstr "Имя файла"
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:661
msgid "German"
msgstr "Немецкий"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:662
msgid "Greek"
msgstr "Греческий"
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:663
msgid "English"
msgstr "Английский"
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:664
msgid "Spanish"
msgstr "Испанский"
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:665
msgid "Spanish (Mexican)"
msgstr "Испанский (Мексика)"
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:666
msgid "French"
msgstr "Французский"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:667
msgid "Hebrew"
msgstr "Иврит"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:668
msgid "Italian"
msgstr "Итальянский"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:669
msgid "Japanese"
msgstr "Японский"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:670
msgid "Korean"
msgstr "Корейский"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:671
msgid "Dutch"
msgstr "Голландский"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:672
msgid "Norwegian"
msgstr "Норвежский"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:673
msgid "Polish"
msgstr "Польский"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:674
msgid "Portugese"
msgstr "Португальский"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:675
msgid "Russian"
msgstr "Русский"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:676
msgid "Swedish"
msgstr "Шведский"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:677
msgid "Thai"
msgstr "Тайский"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:678
msgid "Turkish"
msgstr "Турецкий"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:679
msgid "Vietnamese"
msgstr "Вьетнамский"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:680
msgid "Chinese"
msgstr "Китайский"
@@ -374,7 +375,7 @@ msgstr "Потерян"
msgid "Returned"
msgstr "Возвращено"
-#: InvenTree/status_codes.py:143 order/models.py:941
+#: InvenTree/status_codes.py:143 order/models.py:961
#: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255
msgid "Shipped"
msgstr "Доставлено"
@@ -455,7 +456,7 @@ msgstr "Отделить от родительского элемента"
msgid "Split child item"
msgstr "Разбить дочерний элемент"
-#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2064
+#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2072
msgid "Merged stock items"
msgstr "Объединенные позиции на складе"
@@ -543,56 +544,56 @@ msgstr "Пароли должны совпадать"
msgid "System Information"
msgstr "Информация о системе"
-#: barcodes/api.py:54 barcodes/api.py:151
+#: barcodes/api.py:54 barcodes/api.py:152
msgid "Must provide barcode_data parameter"
msgstr "Должен быть предоставлен параметр штрихкода"
-#: barcodes/api.py:127
+#: barcodes/api.py:128
msgid "No match found for barcode data"
msgstr "Не найдено совпадений для данных штрих-кода"
-#: barcodes/api.py:129
+#: barcodes/api.py:130
msgid "Match found for barcode data"
msgstr "Найдено совпадение по штрих-коду"
-#: barcodes/api.py:154
+#: barcodes/api.py:155
msgid "Must provide stockitem parameter"
msgstr "Необходимо предоставить параметр инвентаря"
-#: barcodes/api.py:161
+#: barcodes/api.py:162
msgid "No matching stock item found"
msgstr "Не найдено совпадающих элементов инвентаря"
-#: barcodes/api.py:191
+#: barcodes/api.py:193
msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:195
+#: barcodes/api.py:197
msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:199
+#: barcodes/api.py:201
msgid "Barcode already matches Part"
msgstr "Штрих-код уже совпадает с Компонентом"
-#: barcodes/api.py:205 barcodes/api.py:217
+#: barcodes/api.py:207 barcodes/api.py:219
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:223
+#: barcodes/api.py:225
msgid "Barcode associated with Stock Item"
msgstr ""
-#: build/forms.py:36 build/models.py:1286
+#: build/forms.py:36 build/models.py:1293
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:35 common/models.py:1253
+#: build/templates/build/detail.html:35 common/models.py:1263
#: company/forms.py:42 company/templates/company/supplier_part.html:251
-#: order/models.py:796 order/models.py:1207 order/serializers.py:810
+#: order/models.py:805 order/models.py:1229 order/serializers.py:816
#: order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:145
-#: part/forms.py:161 part/forms.py:177 part/models.py:2629
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144
+#: part/forms.py:160 part/forms.py:176 part/models.py:2636
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:962 part/templates/part/detail.html:1048
+#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -603,7 +604,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:181
#: stock/templates/stock/item_base.html:262
#: stock/templates/stock/item_base.html:270
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:555
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:567
#: templates/js/translated/build.js:295 templates/js/translated/build.js:495
#: templates/js/translated/build.js:689 templates/js/translated/build.js:699
#: templates/js/translated/build.js:1075 templates/js/translated/build.js:1422
@@ -611,11 +612,11 @@ msgstr ""
#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056
#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859
#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036
-#: templates/js/translated/order.js:2150 templates/js/translated/part.js:900
-#: templates/js/translated/part.js:1855 templates/js/translated/part.js:1978
-#: templates/js/translated/part.js:2056 templates/js/translated/stock.js:383
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:750
-#: templates/js/translated/stock.js:2519 templates/js/translated/stock.js:2621
+#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906
+#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985
+#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:391
+#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758
+#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2779
msgid "Quantity"
msgstr "Количество"
@@ -623,9 +624,9 @@ msgstr "Количество"
msgid "Enter quantity for build output"
msgstr "Введите количество для вывода сборки"
-#: build/forms.py:41 order/serializers.py:814 stock/forms.py:81
-#: stock/serializers.py:314 templates/js/translated/stock.js:230
-#: templates/js/translated/stock.js:384
+#: build/forms.py:41 order/serializers.py:820 stock/forms.py:81
+#: stock/serializers.py:314 templates/js/translated/stock.js:238
+#: templates/js/translated/stock.js:392
msgid "Serial Numbers"
msgstr "Серийные номера"
@@ -649,18 +650,18 @@ msgstr "Подтвердите отмену"
msgid "Confirm build cancellation"
msgstr "Подтвердите отмену сборки"
-#: build/models.py:133
+#: build/models.py:135
msgid "Invalid choice for parent build"
msgstr "Неверный выбор для родительской сборки"
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:139 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:457
+#: templates/js/translated/build.js:457 templates/js/translated/stock.js:2290
msgid "Build Order"
msgstr "Порядок сборки"
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:140 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:92
#: order/templates/order/so_sidebar.html:13
@@ -670,40 +671,40 @@ msgstr "Порядок сборки"
msgid "Build Orders"
msgstr "Порядок сборки"
-#: build/models.py:198
+#: build/models.py:200
msgid "Build Order Reference"
msgstr "Ссылка на заказ"
-#: build/models.py:199 order/models.py:210 order/models.py:536
-#: order/models.py:803 part/models.py:2638
+#: build/models.py:201 order/models.py:213 order/models.py:541
+#: order/models.py:812 part/models.py:2645
#: 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/translated/bom.js:547 templates/js/translated/build.js:1179
+#: templates/js/translated/bom.js:559 templates/js/translated/build.js:1179
#: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144
msgid "Reference"
msgstr "Отсылка"
-#: build/models.py:210
+#: build/models.py:212
msgid "Brief description of the build"
msgstr "Краткое описание сборки"
-#: build/models.py:219 build/templates/build/build_base.html:164
+#: build/models.py:221 build/templates/build/build_base.html:164
#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr "Родительская сборка"
-#: build/models.py:220
+#: build/models.py:222
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:225 build/templates/build/build_base.html:77
+#: build/models.py:227 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
-#: order/models.py:856 order/models.py:930
-#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
-#: part/models.py:2204 part/models.py:2220 part/models.py:2239
-#: part/models.py:2256 part/models.py:2358 part/models.py:2480
-#: part/models.py:2613 part/models.py:2920 part/serializers.py:658
+#: order/models.py:876 order/models.py:950
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359
+#: part/models.py:2211 part/models.py:2227 part/models.py:2246
+#: part/models.py:2263 part/models.py:2365 part/models.py:2487
+#: part/models.py:2620 part/models.py:2927 part/serializers.py:658
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -713,205 +714,205 @@ msgstr ""
#: templates/InvenTree/search.html:80
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
-#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:326
-#: templates/js/translated/bom.js:505 templates/js/translated/build.js:680
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:338
+#: templates/js/translated/bom.js:517 templates/js/translated/build.js:680
#: templates/js/translated/build.js:1048 templates/js/translated/build.js:1419
#: templates/js/translated/build.js:1687 templates/js/translated/company.js:492
#: templates/js/translated/company.js:749 templates/js/translated/order.js:84
#: templates/js/translated/order.js:586 templates/js/translated/order.js:1004
#: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933
-#: templates/js/translated/order.js:2128 templates/js/translated/part.js:977
-#: templates/js/translated/part.js:1058 templates/js/translated/part.js:1225
-#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:719
-#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1526
-#: templates/js/translated/stock.js:2609
+#: templates/js/translated/order.js:2128 templates/js/translated/part.js:984
+#: templates/js/translated/part.js:1065 templates/js/translated/part.js:1232
+#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727
+#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1534
+#: templates/js/translated/stock.js:2767
msgid "Part"
msgstr "Детали"
-#: build/models.py:233
+#: build/models.py:235
msgid "Select part to build"
msgstr "Выберите часть для сборки"
-#: build/models.py:238
+#: build/models.py:240
msgid "Sales Order Reference"
msgstr "Отсылка на заказ"
-#: build/models.py:242
+#: build/models.py:244
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 templates/js/translated/build.js:1407
+#: build/models.py:249 templates/js/translated/build.js:1407
#: templates/js/translated/order.js:1564
msgid "Source Location"
msgstr "Расположение источника"
-#: build/models.py:251
+#: build/models.py:253
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:256
+#: build/models.py:258
msgid "Destination Location"
msgstr "Место назначения"
-#: build/models.py:260
+#: build/models.py:262
msgid "Select location where the completed items will be stored"
msgstr "Выберите место хранения завершенных элементов"
-#: build/models.py:264
+#: build/models.py:266
msgid "Build Quantity"
msgstr "Количество сборки"
-#: build/models.py:267
+#: build/models.py:269
msgid "Number of stock items to build"
msgstr "Количество складских предметов для сборки"
-#: build/models.py:271
+#: build/models.py:273
msgid "Completed items"
msgstr "Завершенные предметы"
-#: build/models.py:273
+#: build/models.py:275
msgid "Number of stock items which have been completed"
msgstr "Количество предметов на складе, которые были завершены"
-#: build/models.py:277 part/templates/part/part_base.html:234
+#: build/models.py:279 part/templates/part/part_base.html:234
msgid "Build Status"
msgstr "Статус сборки"
-#: build/models.py:281
+#: build/models.py:283
msgid "Build status code"
msgstr "Код статуса сборки"
-#: build/models.py:285 stock/models.py:531
+#: build/models.py:287 stock/models.py:533
msgid "Batch Code"
msgstr "Штрих код"
-#: build/models.py:289
+#: build/models.py:291
msgid "Batch code for this build output"
msgstr "Штрих код для этого вывода сборки"
-#: build/models.py:292 order/models.py:126 part/models.py:967
+#: build/models.py:294 order/models.py:129 part/models.py:969
#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271
msgid "Creation Date"
msgstr "Дата создания"
-#: build/models.py:296 order/models.py:558
+#: build/models.py:298 order/models.py:563
msgid "Target completion date"
msgstr "Целевая дата завершения"
-#: build/models.py:297
+#: build/models.py:299
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Целевая дата для сборки. Сборка будет просрочена после этой даты."
-#: build/models.py:300 order/models.py:252
+#: build/models.py:302 order/models.py:255
#: templates/js/translated/build.js:1758
msgid "Completion Date"
msgstr "Дата завершения"
-#: build/models.py:306
+#: build/models.py:308
msgid "completed by"
msgstr "выполнено"
-#: build/models.py:314 templates/js/translated/build.js:1729
+#: build/models.py:316 templates/js/translated/build.js:1729
msgid "Issued by"
msgstr "Выдал/ла"
-#: build/models.py:315
+#: build/models.py:317
msgid "User who issued this build order"
msgstr "Пользователь, выпустивший этот заказ на сборку"
-#: build/models.py:323 build/templates/build/build_base.html:185
-#: build/templates/build/detail.html:116 order/models.py:140
+#: build/models.py:325 build/templates/build/build_base.html:185
+#: build/templates/build/detail.html:116 order/models.py:143
#: order/templates/order/order_base.html:170
-#: order/templates/order/sales_order_base.html:182 part/models.py:971
+#: order/templates/order/sales_order_base.html:182 part/models.py:973
#: report/templates/report/inventree_build_order_base.html:159
#: templates/js/translated/build.js:1741 templates/js/translated/order.js:864
msgid "Responsible"
msgstr "Ответственный"
-#: build/models.py:324
+#: build/models.py:326
msgid "User responsible for this build order"
msgstr "Пользователь ответственный за этот заказ сборки"
-#: build/models.py:329 build/templates/build/detail.html:102
+#: build/models.py:331 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:525
+#: part/templates/part/part_base.html:354 stock/models.py:527
#: stock/templates/stock/item_base.html:373
msgid "External Link"
msgstr "Внешняя ссылка"
-#: build/models.py:334 build/serializers.py:201
+#: build/models.py:336 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
-#: order/models.py:144 order/models.py:805 order/models.py:1051
+#: order/models.py:147 order/models.py:814 order/models.py:1071
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:17 part/models.py:956
-#: part/templates/part/detail.html:120 part/templates/part/part_sidebar.html:50
+#: order/templates/order/so_sidebar.html:17 part/models.py:958
+#: part/templates/part/detail.html:137 part/templates/part/part_sidebar.html:54
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:597
-#: stock/models.py:1867 stock/models.py:1973 stock/serializers.py:332
-#: stock/serializers.py:639 stock/serializers.py:737 stock/serializers.py:869
-#: stock/templates/stock/stock_sidebar.html:21
-#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:711
+#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:599
+#: stock/models.py:1895 stock/models.py:2001 stock/serializers.py:332
+#: stock/serializers.py:640 stock/serializers.py:738 stock/serializers.py:870
+#: stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:723
#: templates/js/translated/company.js:845 templates/js/translated/order.js:1149
#: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280
-#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1795
+#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1803
msgid "Notes"
msgstr "Заметки"
-#: build/models.py:335
+#: build/models.py:337
msgid "Extra build notes"
msgstr "Дополнительные заметки к сборке"
-#: build/models.py:710
+#: build/models.py:717
msgid "No build output specified"
msgstr "Вывод сборки не указан"
-#: build/models.py:713
+#: build/models.py:720
msgid "Build output is already completed"
msgstr "Вывод сборки уже завершен"
-#: build/models.py:716
+#: build/models.py:723
msgid "Build output does not match Build Order"
msgstr "Вывод сборки не совпадает с порядком сборки"
-#: build/models.py:1108
+#: build/models.py:1115
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "Элемент сборки должен указать вывод сборки, так как основная часть помечена как отслеживаемая"
-#: build/models.py:1117
+#: build/models.py:1124
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr "Выделенное количество ({q}) не должно превышать доступное количество на складе ({a})"
-#: build/models.py:1127
+#: build/models.py:1134
msgid "Stock item is over-allocated"
msgstr "Предмет на складе перераспределен"
-#: build/models.py:1133 order/models.py:1167
+#: build/models.py:1140 order/models.py:1189
msgid "Allocation quantity must be greater than zero"
msgstr "Выделенное количество должно быть больше нуля"
-#: build/models.py:1139
+#: build/models.py:1146
msgid "Quantity must be 1 for serialized stock"
msgstr "Количество должно быть 1 для сериализованных запасов"
-#: build/models.py:1196
+#: build/models.py:1203
msgid "Selected stock item not found in BOM"
msgstr "Выбранный предмет со складом не найден в BOM"
-#: build/models.py:1256 stock/templates/stock/item_base.html:345
+#: build/models.py:1263 stock/templates/stock/item_base.html:345
#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1660
#: templates/navbar.html:35
msgid "Build"
msgstr "Сборка"
-#: build/models.py:1257
+#: build/models.py:1264
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1273 build/serializers.py:388 order/serializers.py:690
-#: order/serializers.py:708 stock/serializers.py:577 stock/serializers.py:695
+#: build/models.py:1280 build/serializers.py:388 order/serializers.py:696
+#: order/serializers.py:714 stock/serializers.py:578 stock/serializers.py:696
#: stock/templates/stock/item_base.html:9
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:367
@@ -920,24 +921,24 @@ msgstr ""
#: templates/js/translated/order.js:85 templates/js/translated/order.js:1577
#: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837
#: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030
-#: templates/js/translated/stock.js:555 templates/js/translated/stock.js:720
-#: templates/js/translated/stock.js:2470
+#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728
+#: templates/js/translated/stock.js:2628
msgid "Stock Item"
msgstr "Предметы на складе"
-#: build/models.py:1274
+#: build/models.py:1281
msgid "Source stock item"
msgstr "Исходный складской предмет"
-#: build/models.py:1287
+#: build/models.py:1294
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1295
+#: build/models.py:1302
msgid "Install into"
msgstr ""
-#: build/models.py:1296
+#: build/models.py:1303
msgid "Destination stock item"
msgstr ""
@@ -962,16 +963,16 @@ msgid "This build output is not fully allocated"
msgstr ""
#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294
-#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:730
-#: stock/serializers.py:971 stock/templates/stock/item_base.html:313
+#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:731
+#: stock/serializers.py:972 stock/templates/stock/item_base.html:313
#: templates/js/translated/barcode.js:384
#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:480
#: templates/js/translated/build.js:1087 templates/js/translated/order.js:508
#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955
#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044
-#: templates/js/translated/part.js:179 templates/js/translated/stock.js:556
-#: templates/js/translated/stock.js:721 templates/js/translated/stock.js:928
-#: templates/js/translated/stock.js:1676 templates/js/translated/stock.js:2411
+#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564
+#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936
+#: templates/js/translated/stock.js:1684 templates/js/translated/stock.js:2569
msgid "Location"
msgstr "Расположение"
@@ -980,12 +981,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:137
-#: build/templates/build/detail.html:63 order/models.py:552
+#: build/templates/build/detail.html:63 order/models.py:557
#: order/serializers.py:247 stock/templates/stock/item_base.html:187
#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1716
#: templates/js/translated/order.js:591 templates/js/translated/order.js:840
-#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1651
-#: templates/js/translated/stock.js:2488 templates/js/translated/stock.js:2637
+#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:2646 templates/js/translated/stock.js:2795
msgid "Status"
msgstr "Статус"
@@ -1021,8 +1022,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:313 build/serializers.py:362 part/models.py:2753
-#: part/models.py:2912
+#: build/serializers.py:313 build/serializers.py:362 part/models.py:2760
+#: part/models.py:2919
msgid "BOM Item"
msgstr "BOM Компонент"
@@ -1038,16 +1039,16 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:394 stock/serializers.py:584
+#: build/serializers.py:394 stock/serializers.py:585
msgid "Item must be in stock"
msgstr "Компонент должен быть в наличии"
-#: build/serializers.py:408 order/models.py:277 order/serializers.py:240
-#: stock/models.py:365 stock/models.py:1077 stock/serializers.py:305
+#: build/serializers.py:408 order/models.py:280 order/serializers.py:240
+#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr "Количество должно быть больше нуля"
-#: build/serializers.py:450 order/serializers.py:741
+#: build/serializers.py:450 order/serializers.py:747
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Превышено доступное количество ({q})"
@@ -1060,7 +1061,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:491 order/serializers.py:984
+#: build/serializers.py:491 order/serializers.py:990
msgid "Allocation items must be provided"
msgstr ""
@@ -1164,13 +1165,13 @@ msgid "Completed"
msgstr "Завершённые"
#: build/templates/build/build_base.html:171
-#: build/templates/build/detail.html:95 order/models.py:927
-#: order/models.py:1023 order/templates/order/sales_order_base.html:9
+#: build/templates/build/detail.html:95 order/models.py:947
+#: order/models.py:1043 order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/order.js:1218
+#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2304
msgid "Sales Order"
msgstr "Заказ покупателя"
@@ -1224,7 +1225,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:50 order/models.py:878 stock/forms.py:136
+#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:136
#: templates/js/translated/order.js:592 templates/js/translated/order.js:1138
msgid "Destination"
msgstr ""
@@ -1239,7 +1240,7 @@ msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:331
-#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2644
+#: templates/js/translated/stock.js:1673 templates/js/translated/stock.js:2802
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:238
msgid "Batch"
@@ -1343,9 +1344,9 @@ msgstr ""
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:107
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:196
-#: part/templates/part/part_sidebar.html:48 stock/templates/stock/item.html:95
-#: stock/templates/stock/stock_sidebar.html:19
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:213
+#: part/templates/part/part_sidebar.html:52 stock/templates/stock/item.html:112
+#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr "Приложения"
@@ -1360,8 +1361,8 @@ msgstr "Заметки сборки"
#: order/templates/order/purchase_order_detail.html:108
#: order/templates/order/sales_order_detail.html:127
#: order/templates/order/sales_order_detail.html:186
-#: part/templates/part/detail.html:124 stock/templates/stock/item.html:115
-#: stock/templates/stock/item.html:205
+#: part/templates/part/detail.html:141 stock/templates/stock/item.html:132
+#: stock/templates/stock/item.html:235
msgid "Edit Notes"
msgstr ""
@@ -1373,7 +1374,7 @@ msgstr ""
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:303
+#: build/templates/build/index.html:18 part/templates/part/detail.html:320
msgid "New Build Order"
msgstr ""
@@ -1453,23 +1454,23 @@ msgstr ""
msgid "Delete Build Order"
msgstr ""
-#: common/files.py:67
+#: common/files.py:65
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
-#: common/files.py:69
+#: common/files.py:67
msgid "Error reading file (invalid encoding)"
msgstr ""
-#: common/files.py:74
+#: common/files.py:72
msgid "Error reading file (invalid format)"
msgstr ""
-#: common/files.py:76
+#: common/files.py:74
msgid "Error reading file (incorrect dimension)"
msgstr ""
-#: common/files.py:78
+#: common/files.py:76
msgid "Error reading file (data could be corrupted)"
msgstr ""
@@ -1490,740 +1491,828 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:344 common/models.py:998 common/models.py:1206
-msgid "Settings key (must be unique - case insensitive"
+#: common/models.py:352
+msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:346
+#: common/models.py:354
msgid "Settings value"
msgstr ""
-#: common/models.py:380
+#: common/models.py:388
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:400
+#: common/models.py:408
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:411
+#: common/models.py:419
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:434
+#: common/models.py:442
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:553
+#: common/models.py:561
msgid "No group"
msgstr ""
-#: common/models.py:595
+#: common/models.py:603
msgid "Restart required"
msgstr ""
-#: common/models.py:596
+#: common/models.py:604
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:603
+#: common/models.py:611
msgid "InvenTree Instance Name"
msgstr ""
-#: common/models.py:605
+#: common/models.py:613
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:609
+#: common/models.py:617
msgid "Use instance name"
msgstr ""
-#: common/models.py:610
+#: common/models.py:618
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:616 company/models.py:100 company/models.py:101
+#: common/models.py:624 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr ""
-#: common/models.py:617
+#: common/models.py:625
msgid "Internal company name"
msgstr ""
-#: common/models.py:622
+#: common/models.py:630
msgid "Base URL"
msgstr ""
-#: common/models.py:623
+#: common/models.py:631
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:629
+#: common/models.py:637
msgid "Default Currency"
msgstr ""
-#: common/models.py:630
+#: common/models.py:638
msgid "Default currency"
msgstr ""
-#: common/models.py:636
+#: common/models.py:644
msgid "Download from URL"
msgstr ""
-#: common/models.py:637
+#: common/models.py:645
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:643 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:651 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
-#: common/models.py:644
+#: common/models.py:652
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:650
+#: common/models.py:658
msgid "IPN Regex"
msgstr ""
-#: common/models.py:651
+#: common/models.py:659
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:655
+#: common/models.py:663
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:656
+#: common/models.py:664
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:662
+#: common/models.py:670
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:663
+#: common/models.py:671
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:669
+#: common/models.py:677
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:670
+#: common/models.py:678
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:676
+#: common/models.py:684
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:677
+#: common/models.py:685
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:683
+#: common/models.py:691
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:684
+#: common/models.py:692
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:690
+#: common/models.py:698
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:691
+#: common/models.py:699
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:697 part/models.py:2482 report/models.py:187
+#: common/models.py:705 part/models.py:2489 report/models.py:187
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:422
msgid "Template"
msgstr ""
-#: common/models.py:698
+#: common/models.py:706
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:704 part/models.py:919 templates/js/translated/bom.js:1068
+#: common/models.py:712 part/models.py:921 templates/js/translated/bom.js:1082
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:434
msgid "Assembly"
msgstr ""
-#: common/models.py:705
+#: common/models.py:713
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:711 part/models.py:925
+#: common/models.py:719 part/models.py:927
#: templates/js/translated/table_filters.js:438
msgid "Component"
msgstr ""
-#: common/models.py:712
+#: common/models.py:720
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:718 part/models.py:936
+#: common/models.py:726 part/models.py:938
msgid "Purchaseable"
msgstr ""
-#: common/models.py:719
+#: common/models.py:727
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:725 part/models.py:941
+#: common/models.py:733 part/models.py:943
#: templates/js/translated/table_filters.js:446
msgid "Salable"
msgstr ""
-#: common/models.py:726
+#: common/models.py:734
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:732 part/models.py:931
+#: common/models.py:740 part/models.py:933
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
#: templates/js/translated/table_filters.js:450
msgid "Trackable"
msgstr ""
-#: common/models.py:733
+#: common/models.py:741
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:739 part/models.py:951
+#: common/models.py:747 part/models.py:953
#: part/templates/part/part_base.html:147
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr ""
-#: common/models.py:740
+#: common/models.py:748
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:746
+#: common/models.py:754
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:747
+#: common/models.py:755
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:753
+#: common/models.py:761
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:754
+#: common/models.py:762
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:765
+#: common/models.py:773
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:766
+#: common/models.py:774
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:772
+#: common/models.py:780
msgid "Show related parts"
msgstr ""
-#: common/models.py:773
+#: common/models.py:781
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:779
+#: common/models.py:787
msgid "Create initial stock"
msgstr ""
-#: common/models.py:780
+#: common/models.py:788
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:786
+#: common/models.py:794
msgid "Internal Prices"
msgstr ""
-#: common/models.py:787
+#: common/models.py:795
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:793
+#: common/models.py:801
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:794
+#: common/models.py:802
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:800
+#: common/models.py:808
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:801
+#: common/models.py:809
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:808
+#: common/models.py:816
msgid "Enable Reports"
msgstr ""
-#: common/models.py:809
+#: common/models.py:817
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:815 templates/stats.html:25
+#: common/models.py:823 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:816
+#: common/models.py:824
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:822
+#: common/models.py:830
msgid "Page Size"
msgstr ""
-#: common/models.py:823
+#: common/models.py:831
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:833
+#: common/models.py:841
msgid "Test Reports"
msgstr ""
-#: common/models.py:834
+#: common/models.py:842
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:840
+#: common/models.py:848
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:841
+#: common/models.py:849
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:847
+#: common/models.py:855
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:848
+#: common/models.py:856
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:854
+#: common/models.py:862
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:855
+#: common/models.py:863
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:857
+#: common/models.py:865
msgid "days"
msgstr ""
-#: common/models.py:862
+#: common/models.py:870
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:863
+#: common/models.py:871
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:869
+#: common/models.py:877
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:870
+#: common/models.py:878
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:876
-msgid "Group by Part"
-msgstr ""
-
-#: common/models.py:877
-msgid "Group stock items by part reference in table views"
-msgstr ""
-
-#: common/models.py:883
+#: common/models.py:884
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:884
+#: common/models.py:885
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:889
+#: common/models.py:890
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:890
+#: common/models.py:891
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:894
+#: common/models.py:895
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:895
+#: common/models.py:896
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:900
+#: common/models.py:901
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:901
+#: common/models.py:902
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:907
+#: common/models.py:908
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:908
+#: common/models.py:909
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:913
+#: common/models.py:914
msgid "Enable registration"
msgstr ""
-#: common/models.py:914
+#: common/models.py:915
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:919
+#: common/models.py:920
msgid "Enable SSO"
msgstr ""
-#: common/models.py:920
+#: common/models.py:921
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:925
+#: common/models.py:926
msgid "Email required"
msgstr ""
-#: common/models.py:926
+#: common/models.py:927
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:931
+#: common/models.py:932
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:932
+#: common/models.py:933
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:937
+#: common/models.py:938
msgid "Mail twice"
msgstr ""
-#: common/models.py:938
+#: common/models.py:939
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:943
+#: common/models.py:944
msgid "Password twice"
msgstr ""
-#: common/models.py:944
+#: common/models.py:945
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:949
+#: common/models.py:950
msgid "Group on signup"
msgstr ""
-#: common/models.py:950
+#: common/models.py:951
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:955
+#: common/models.py:956
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:956
+#: common/models.py:957
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:961
+#: common/models.py:964
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:962
+#: common/models.py:965
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:968
+#: common/models.py:971
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:969
+#: common/models.py:972
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:975
+#: common/models.py:978
msgid "Enable app integration"
msgstr ""
-#: common/models.py:976
+#: common/models.py:979
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:982
+#: common/models.py:985
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:983
+#: common/models.py:986
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1029
+#: common/models.py:992
+msgid "Enable event integration"
+msgstr ""
+
+#: common/models.py:993
+msgid "Enable plugins to respond to internal events"
+msgstr ""
+
+#: common/models.py:1008 common/models.py:1216
+msgid "Settings key (must be unique - case insensitive"
+msgstr ""
+
+#: common/models.py:1039
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1030
+#: common/models.py:1040
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1035
+#: common/models.py:1045
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1036
+#: common/models.py:1046
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1041
+#: common/models.py:1051
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1042
+#: common/models.py:1052
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1047
+#: common/models.py:1057
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1048
+#: common/models.py:1058
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1054
+#: common/models.py:1064
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1055
+#: common/models.py:1065
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1070
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1061
+#: common/models.py:1071
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1066
+#: common/models.py:1076
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1067
+#: common/models.py:1077
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1072
+#: common/models.py:1082
msgid "Show low stock"
msgstr ""
-#: common/models.py:1073
+#: common/models.py:1083
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1078
+#: common/models.py:1088
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1079
+#: common/models.py:1089
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1084
+#: common/models.py:1094
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1085
+#: common/models.py:1095
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1090
+#: common/models.py:1100
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1091
+#: common/models.py:1101
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1096
+#: common/models.py:1106
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1097
+#: common/models.py:1107
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1102
+#: common/models.py:1112
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1103
+#: common/models.py:1113
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1108
+#: common/models.py:1118
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1109
+#: common/models.py:1119
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1114
+#: common/models.py:1124
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1115
+#: common/models.py:1125
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1120
+#: common/models.py:1130
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1121
+#: common/models.py:1131
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1136
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1127
+#: common/models.py:1137
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1142
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1143
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1149
msgid "Inline label display"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1150
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1156
msgid "Inline report display"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1157
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1163
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1164
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1170
msgid "Search Show Stock"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1171
msgid "Display stock levels in search preview window"
msgstr ""
-#: common/models.py:1167
+#: common/models.py:1177
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1178
msgid "Hide inactive parts in search preview window"
msgstr ""
-#: common/models.py:1174
+#: common/models.py:1184
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1175
+#: common/models.py:1185
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1181
+#: common/models.py:1191
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1182
+#: common/models.py:1192
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1188
+#: common/models.py:1198
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1199
msgid "InvenTree navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1254 company/forms.py:43
+#: common/models.py:1264 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1261 company/serializers.py:264
+#: common/models.py:1271 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:909 templates/js/translated/part.js:1860
+#: templates/js/translated/part.js:915 templates/js/translated/part.js:1867
msgid "Price"
msgstr ""
-#: common/models.py:1262
+#: common/models.py:1272
msgid "Unit price at specified quantity"
msgstr ""
+#: common/models.py:1429 common/models.py:1568
+msgid "Endpoint"
+msgstr ""
+
+#: common/models.py:1430
+msgid "Endpoint at which this webhook is received"
+msgstr ""
+
+#: common/models.py:1439
+msgid "Name for this webhook"
+msgstr ""
+
+#: common/models.py:1444 part/models.py:948 plugin/models.py:46
+#: templates/js/translated/table_filters.js:34
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:295
+#: templates/js/translated/table_filters.js:417
+msgid "Active"
+msgstr ""
+
+#: common/models.py:1445
+msgid "Is this webhook active"
+msgstr ""
+
+#: common/models.py:1459
+msgid "Token"
+msgstr ""
+
+#: common/models.py:1460
+msgid "Token for access"
+msgstr ""
+
+#: common/models.py:1467
+msgid "Secret"
+msgstr ""
+
+#: common/models.py:1468
+msgid "Shared secret for HMAC"
+msgstr ""
+
+#: common/models.py:1535
+msgid "Message ID"
+msgstr ""
+
+#: common/models.py:1536
+msgid "Unique identifier for this message"
+msgstr ""
+
+#: common/models.py:1544
+msgid "Host"
+msgstr ""
+
+#: common/models.py:1545
+msgid "Host from which this message was received"
+msgstr ""
+
+#: common/models.py:1552
+msgid "Header"
+msgstr ""
+
+#: common/models.py:1553
+msgid "Header of this message"
+msgstr ""
+
+#: common/models.py:1559
+msgid "Body"
+msgstr ""
+
+#: common/models.py:1560
+msgid "Body of this message"
+msgstr ""
+
+#: common/models.py:1569
+msgid "Endpoint on which this message was received"
+msgstr ""
+
+#: common/models.py:1574
+msgid "Worked on"
+msgstr ""
+
+#: common/models.py:1575
+msgid "Was the work on this message finished?"
+msgstr ""
+
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
#: part/templates/part/bom_upload/upload_file.html:52
-#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
-#: part/views.py:764
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:213
+#: part/views.py:773
msgid "Upload File"
msgstr ""
#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
-#: part/views.py:765
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:214
+#: part/views.py:774
msgid "Match Fields"
msgstr ""
@@ -2315,7 +2404,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:838
+#: company/models.py:139 part/models.py:840
msgid "Image"
msgstr ""
@@ -2352,8 +2441,8 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:469
-#: stock/templates/stock/item_base.html:142
+#: company/models.py:320 company/models.py:535 stock/models.py:471
+#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:328
msgid "Base Part"
msgstr ""
@@ -2380,7 +2469,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:818 templates/js/translated/order.js:1038
-#: templates/js/translated/part.js:245 templates/js/translated/part.js:889
+#: templates/js/translated/part.js:245 templates/js/translated/part.js:895
msgid "MPN"
msgstr ""
@@ -2409,8 +2498,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1960 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:709 templates/js/translated/stock.js:1296
+#: stock/models.py:1988 templates/js/translated/company.js:647
+#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1304
msgid "Value"
msgstr ""
@@ -2418,10 +2507,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:913 part/models.py:2450
+#: company/models.py:429 part/models.py:915 part/models.py:2457
#: part/templates/part/part_base.html:288
-#: templates/InvenTree/settings/settings.html:284
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:715
+#: templates/InvenTree/settings/settings.html:287
+#: templates/js/translated/company.js:653 templates/js/translated/part.js:721
msgid "Units"
msgstr ""
@@ -2434,13 +2523,13 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:78
-#: company/templates/company/supplier_part.html:87 order/models.py:224
+#: company/templates/company/supplier_part.html:87 order/models.py:227
#: order/templates/order/order_base.html:112
-#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
-#: part/bom.py:247 stock/templates/stock/item_base.html:397
+#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237
+#: part/bom.py:265 stock/templates/stock/item_base.html:397
#: templates/js/translated/company.js:337
#: templates/js/translated/company.js:774 templates/js/translated/order.js:823
-#: templates/js/translated/part.js:215 templates/js/translated/part.js:857
+#: templates/js/translated/part.js:215 templates/js/translated/part.js:863
#: templates/js/translated/table_filters.js:393
msgid "Supplier"
msgstr ""
@@ -2450,8 +2539,8 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:1025
-#: templates/js/translated/part.js:226 templates/js/translated/part.js:875
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1025
+#: templates/js/translated/part.js:226 templates/js/translated/part.js:881
msgid "SKU"
msgstr ""
@@ -2472,22 +2561,22 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:119
-#: part/models.py:2641 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2648 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:580 part/models.py:1779
+#: company/models.py:580 part/models.py:1781
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1779
+#: company/models.py:580 part/models.py:1781
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:493 stock/templates/stock/item_base.html:338
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1791
+#: stock/models.py:495 stock/templates/stock/item_base.html:338
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1799
msgid "Packaging"
msgstr ""
@@ -2495,7 +2584,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1781
+#: company/models.py:584 part/models.py:1783
msgid "multiple"
msgstr ""
@@ -2554,12 +2643,12 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:83 order/models.py:547
-#: order/templates/order/sales_order_base.html:115 stock/models.py:512
-#: stock/models.py:513 stock/serializers.py:625
+#: company/templates/company/company_base.html:83 order/models.py:552
+#: order/templates/order/sales_order_base.html:115 stock/models.py:514
+#: stock/models.py:515 stock/serializers.py:626
#: stock/templates/stock/item_base.html:290
#: templates/js/translated/company.js:329 templates/js/translated/order.js:1240
-#: templates/js/translated/stock.js:2452
+#: templates/js/translated/stock.js:2610
#: templates/js/translated/table_filters.js:397
msgid "Customer"
msgstr ""
@@ -2590,7 +2679,7 @@ msgstr ""
#: company/templates/company/detail.html:20
#: company/templates/company/manufacturer_part.html:118
-#: part/templates/part/detail.html:336
+#: part/templates/part/detail.html:353
msgid "New Supplier Part"
msgstr ""
@@ -2598,8 +2687,8 @@ msgstr ""
#: company/templates/company/detail.html:79
#: company/templates/company/manufacturer_part.html:127
#: company/templates/company/manufacturer_part.html:156
-#: part/templates/part/category.html:171 part/templates/part/detail.html:345
-#: part/templates/part/detail.html:374
+#: part/templates/part/category.html:171 part/templates/part/detail.html:362
+#: part/templates/part/detail.html:391
msgid "Options"
msgstr ""
@@ -2627,7 +2716,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:364
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:381
msgid "New Manufacturer Part"
msgstr ""
@@ -2641,7 +2730,7 @@ msgstr ""
#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:68 part/templates/part/part_sidebar.html:33
+#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
@@ -2663,7 +2752,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:91 part/templates/part/part_sidebar.html:37
+#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:41
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
@@ -2691,13 +2780,13 @@ msgstr ""
#: company/templates/company/detail.html:384
#: company/templates/company/manufacturer_part.html:215
-#: part/templates/part/detail.html:418
+#: part/templates/part/detail.html:435
msgid "Delete Supplier Parts?"
msgstr ""
#: company/templates/company/detail.html:385
#: company/templates/company/manufacturer_part.html:216
-#: part/templates/part/detail.html:419
+#: part/templates/part/detail.html:436
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2714,7 +2803,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:34
#: company/templates/company/supplier_part.html:159
-#: part/templates/part/detail.html:71 part/templates/part/part_base.html:76
+#: part/templates/part/detail.html:88 part/templates/part/part_base.html:76
msgid "Order part"
msgstr ""
@@ -2735,34 +2824,34 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:114
#: company/templates/company/supplier_part.html:15 company/views.py:49
-#: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163
+#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:163
#: templates/InvenTree/search.html:188 templates/navbar.html:45
msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
-#: part/templates/part/detail.html:347
+#: part/templates/part/detail.html:364
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
#: company/templates/company/manufacturer_part.html:158
#: company/templates/company/manufacturer_part.html:254
-#: part/templates/part/detail.html:347 part/templates/part/detail.html:376
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:393
#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31
-#: users/models.py:210
+#: users/models.py:212
msgid "Delete"
msgstr ""
#: company/templates/company/manufacturer_part.html:143
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:17
-#: part/templates/part/detail.html:170 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:187 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:147
-#: part/templates/part/detail.html:175
+#: part/templates/part/detail.html:192
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
@@ -2773,7 +2862,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:191
-#: part/templates/part/detail.html:862
+#: part/templates/part/detail.html:892
msgid "Add Parameter"
msgstr ""
@@ -2802,9 +2891,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:477
+#: company/templates/company/supplier_part.html:24 stock/models.py:479
#: stock/templates/stock/item_base.html:402
-#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1748
+#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1756
msgid "Supplier Part"
msgstr ""
@@ -2830,7 +2919,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:167
-#: templates/js/translated/stock.js:360
+#: templates/js/translated/stock.js:368
msgid "New Stock Item"
msgstr ""
@@ -2840,7 +2929,7 @@ msgid "Supplier Part Orders"
msgstr ""
#: company/templates/company/supplier_part.html:160
-#: part/templates/part/detail.html:72
+#: part/templates/part/detail.html:89
msgid "Order Part"
msgstr ""
@@ -2851,7 +2940,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1619
+#: part/templates/part/prices.html:271 part/views.py:1628
msgid "Add Price Break"
msgstr ""
@@ -2859,11 +2948,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1681
+#: company/templates/company/supplier_part.html:224 part/views.py:1690
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1667
+#: company/templates/company/supplier_part.html:238 part/views.py:1676
msgid "Edit Price Break"
msgstr ""
@@ -2881,10 +2970,10 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:150
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/bom.js:328 templates/js/translated/part.js:489
-#: templates/js/translated/part.js:624 templates/js/translated/part.js:1118
-#: templates/js/translated/part.js:1279 templates/js/translated/stock.js:927
-#: templates/js/translated/stock.js:1580 templates/navbar.html:28
+#: templates/js/translated/bom.js:340 templates/js/translated/part.js:495
+#: templates/js/translated/part.js:630 templates/js/translated/part.js:1125
+#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:935
+#: templates/js/translated/stock.js:1588 templates/navbar.html:28
msgid "Stock"
msgstr ""
@@ -2907,8 +2996,8 @@ msgstr ""
#: stock/templates/stock/location.html:151
#: stock/templates/stock/location.html:163
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2351
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2509
+#: templates/stats.html:105 templates/stats.html:114 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2937,20 +3026,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:584
+#: company/views.py:129 part/views.py:593
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:616
+#: company/views.py:158 part/views.py:625
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:623
+#: company/views.py:165 part/views.py:632
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:632
+#: company/views.py:174 part/views.py:641
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3036,282 +3125,282 @@ msgstr ""
msgid "Cancel order"
msgstr ""
-#: order/models.py:122
+#: order/models.py:125
msgid "Order description"
msgstr ""
-#: order/models.py:124
+#: order/models.py:127
msgid "Link to external page"
msgstr ""
-#: order/models.py:132
+#: order/models.py:135
msgid "Created By"
msgstr ""
-#: order/models.py:139
+#: order/models.py:142
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:144
+#: order/models.py:147
msgid "Order notes"
msgstr ""
-#: order/models.py:211 order/models.py:537
+#: order/models.py:214 order/models.py:542
msgid "Order reference"
msgstr ""
-#: order/models.py:216 order/models.py:552
+#: order/models.py:219 order/models.py:557
msgid "Purchase order status"
msgstr ""
-#: order/models.py:225
+#: order/models.py:228
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:228 order/templates/order/order_base.html:118
+#: order/models.py:231 order/templates/order/order_base.html:118
#: templates/js/translated/order.js:832
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:228
+#: order/models.py:231
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:235
+#: order/models.py:238
msgid "received by"
msgstr ""
-#: order/models.py:240
+#: order/models.py:243
msgid "Issue Date"
msgstr ""
-#: order/models.py:241
+#: order/models.py:244
msgid "Date order was issued"
msgstr ""
-#: order/models.py:246
+#: order/models.py:249
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:247
+#: order/models.py:250
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:253
+#: order/models.py:256
msgid "Date order was completed"
msgstr ""
-#: order/models.py:282
+#: order/models.py:285
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:411
-msgid "Quantity must be an integer"
-msgstr ""
-
-#: order/models.py:415
+#: order/models.py:420
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:548
+#: order/models.py:553
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:554
+#: order/models.py:559
msgid "Customer Reference "
msgstr ""
-#: order/models.py:554
+#: order/models.py:559
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:559
+#: order/models.py:564
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:562 order/models.py:1028
+#: order/models.py:567 order/models.py:1048
#: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429
msgid "Shipment Date"
msgstr ""
-#: order/models.py:569
+#: order/models.py:574
msgid "shipped by"
msgstr ""
-#: order/models.py:635
+#: order/models.py:640
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:639
+#: order/models.py:644
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:642
+#: order/models.py:647
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:645
+#: order/models.py:650
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:797
+#: order/models.py:806
msgid "Item quantity"
msgstr ""
-#: order/models.py:803
+#: order/models.py:812
msgid "Line item reference"
msgstr ""
-#: order/models.py:805
+#: order/models.py:814
msgid "Line item notes"
msgstr ""
-#: order/models.py:835 order/models.py:926 order/models.py:1022
-#: templates/js/translated/order.js:1820
+#: order/models.py:842
+msgid "Supplier part must match supplier"
+msgstr ""
+
+#: order/models.py:855 order/models.py:946 order/models.py:1042
+#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2271
msgid "Order"
msgstr ""
-#: order/models.py:836 order/templates/order/order_base.html:9
+#: order/models.py:856 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:352
-#: templates/js/translated/order.js:801 templates/js/translated/part.js:832
-#: templates/js/translated/stock.js:1725 templates/js/translated/stock.js:2433
+#: templates/js/translated/order.js:801 templates/js/translated/part.js:838
+#: templates/js/translated/stock.js:1733 templates/js/translated/stock.js:2591
msgid "Purchase Order"
msgstr ""
-#: order/models.py:857
+#: order/models.py:877
msgid "Supplier part"
msgstr ""
-#: order/models.py:864 order/templates/order/order_base.html:163
+#: order/models.py:884 order/templates/order/order_base.html:163
#: templates/js/translated/order.js:589 templates/js/translated/order.js:1118
-#: templates/js/translated/part.js:904 templates/js/translated/part.js:930
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:937
#: templates/js/translated/table_filters.js:317
msgid "Received"
msgstr ""
-#: order/models.py:865
+#: order/models.py:885
msgid "Number of items received"
msgstr ""
-#: order/models.py:872 part/templates/part/prices.html:176 stock/models.py:606
+#: order/models.py:892 part/templates/part/prices.html:176 stock/models.py:608
#: stock/serializers.py:170 stock/templates/stock/item_base.html:359
-#: templates/js/translated/stock.js:1779
+#: templates/js/translated/stock.js:1787
msgid "Purchase Price"
msgstr ""
-#: order/models.py:873
+#: order/models.py:893
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:881
+#: order/models.py:901
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:936 part/templates/part/part_pricing.html:112
+#: order/models.py:956 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:937
+#: order/models.py:957
msgid "Unit sale price"
msgstr ""
-#: order/models.py:942
+#: order/models.py:962
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1029
+#: order/models.py:1049
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1036
+#: order/models.py:1056
msgid "Checked By"
msgstr ""
-#: order/models.py:1037
+#: order/models.py:1057
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1045
+#: order/models.py:1065
msgid "Shipment number"
msgstr ""
-#: order/models.py:1052
+#: order/models.py:1072
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1059
+#: order/models.py:1079
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1060
+#: order/models.py:1080
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1070
+#: order/models.py:1090
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1073
+#: order/models.py:1093
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1149 order/models.py:1151
+#: order/models.py:1171 order/models.py:1173
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1155
+#: order/models.py:1177
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1157
+#: order/models.py:1179
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1160
+#: order/models.py:1182
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1164
+#: order/models.py:1186
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:1170 order/serializers.py:734
+#: order/models.py:1192 order/serializers.py:740
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1173
+#: order/models.py:1195
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1174
+#: order/models.py:1196
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1182
+#: order/models.py:1204
msgid "Line"
msgstr ""
-#: order/models.py:1190 order/serializers.py:825 order/serializers.py:953
-#: templates/js/translated/model_renderers.js:251
+#: order/models.py:1212 order/serializers.py:831 order/serializers.py:959
+#: templates/js/translated/model_renderers.js:285
msgid "Shipment"
msgstr ""
-#: order/models.py:1191
+#: order/models.py:1213
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1203
+#: order/models.py:1225
msgid "Item"
msgstr ""
-#: order/models.py:1204
+#: order/models.py:1226
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1207
+#: order/models.py:1229
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3319,7 +3408,7 @@ msgstr ""
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:211 order/serializers.py:790
+#: order/serializers.py:211 order/serializers.py:796
msgid "Line Item"
msgstr ""
@@ -3355,39 +3444,39 @@ msgstr ""
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:581
+#: order/serializers.py:587
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:649
+#: order/serializers.py:655
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:699 order/serializers.py:802
+#: order/serializers.py:705 order/serializers.py:808
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:721
+#: order/serializers.py:727
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:815
+#: order/serializers.py:821
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:839 order/serializers.py:964
+#: order/serializers.py:845 order/serializers.py:970
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:842 order/serializers.py:967
+#: order/serializers.py:848 order/serializers.py:973
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:894
+#: order/serializers.py:900
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:904
+#: order/serializers.py:910
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3441,6 +3530,7 @@ msgstr ""
#: order/templates/order/order_base.html:94
#: order/templates/order/sales_order_base.html:89
+#: templates/js/translated/stock.js:2327
msgid "Order Status"
msgstr ""
@@ -3538,7 +3628,7 @@ msgstr ""
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/build.js:300 templates/js/translated/build.js:1311
#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488
-#: templates/js/translated/stock.js:593 templates/js/translated/stock.js:761
+#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769
msgid "Remove row"
msgstr ""
@@ -3729,7 +3819,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:48
-#: templates/js/translated/bom.js:720 templates/js/translated/build.js:1243
+#: templates/js/translated/bom.js:732 templates/js/translated/build.js:1243
msgid "Actions"
msgstr ""
@@ -3832,447 +3922,448 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:125 part/models.py:81 part/models.py:847
+#: part/bom.py:125 part/models.py:83 part/models.py:849
#: part/templates/part/category.html:108 part/templates/part/part_base.html:338
msgid "Default Location"
msgstr ""
-#: part/bom.py:126 part/templates/part/part_base.html:185
+#: part/bom.py:126 templates/email/low_stock_notification.html:17
+msgid "Total Stock"
+msgstr ""
+
+#: part/bom.py:127 part/templates/part/part_base.html:185
msgid "Available Stock"
msgstr ""
-#: part/forms.py:85
+#: part/bom.py:128 part/templates/part/part_base.html:203
+#: templates/js/translated/part.js:1301
+msgid "On Order"
+msgstr ""
+
+#: part/forms.py:84
msgid "Select part category"
msgstr ""
-#: part/forms.py:122
+#: part/forms.py:121
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:126
+#: part/forms.py:125
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:146
+#: part/forms.py:145
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:82
+#: part/models.py:84
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:85
+#: part/models.py:87
msgid "Default keywords"
msgstr ""
-#: part/models.py:85
+#: part/models.py:87
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:95 part/models.py:2526 part/templates/part/category.html:15
+#: part/models.py:97 part/models.py:2533 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:96 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/stats.html:84
+#: part/models.py:98 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/stats.html:96
#: users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:358 part/templates/part/cat_link.html:3
+#: part/models.py:360 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:17 part/templates/part/category.html:133
#: part/templates/part/category.html:153
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:37
-#: templates/js/translated/part.js:1656 templates/navbar.html:21
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+#: templates/js/translated/part.js:1663 templates/navbar.html:21
+#: templates/stats.html:92 templates/stats.html:101 users/models.py:41
msgid "Parts"
msgstr ""
-#: part/models.py:450
+#: part/models.py:452
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:500 part/models.py:512
+#: part/models.py:502 part/models.py:514
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:642
+#: part/models.py:644
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:646
+#: part/models.py:648
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:651
+#: part/models.py:653
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:746
+#: part/models.py:748
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:771
+#: part/models.py:773
msgid "Part name"
msgstr ""
-#: part/models.py:778
+#: part/models.py:780
msgid "Is Template"
msgstr ""
-#: part/models.py:779
+#: part/models.py:781
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:789
+#: part/models.py:791
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:790
+#: part/models.py:792
msgid "Variant Of"
msgstr ""
-#: part/models.py:796
+#: part/models.py:798
msgid "Part description"
msgstr ""
-#: part/models.py:801 part/templates/part/category.html:86
+#: part/models.py:803 part/templates/part/category.html:86
#: part/templates/part/part_base.html:302
msgid "Keywords"
msgstr ""
-#: part/models.py:802
+#: part/models.py:804
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:809 part/models.py:2276 part/models.py:2525
+#: part/models.py:811 part/models.py:2283 part/models.py:2532
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:183
-#: templates/js/translated/part.js:1261
+#: templates/InvenTree/settings/settings.html:186
+#: templates/js/translated/part.js:1268
msgid "Category"
msgstr ""
-#: part/models.py:810
+#: part/models.py:812
msgid "Part category"
msgstr ""
-#: part/models.py:815 part/templates/part/part_base.html:274
-#: templates/js/translated/part.js:612 templates/js/translated/part.js:1214
-#: templates/js/translated/stock.js:1552
+#: part/models.py:817 part/templates/part/part_base.html:274
+#: templates/js/translated/part.js:618 templates/js/translated/part.js:1221
+#: templates/js/translated/stock.js:1560
msgid "IPN"
msgstr ""
-#: part/models.py:816
+#: part/models.py:818
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:822
+#: part/models.py:824
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:823 part/templates/part/part_base.html:281
-#: report/models.py:200 templates/js/translated/part.js:616
+#: part/models.py:825 part/templates/part/part_base.html:281
+#: report/models.py:200 templates/js/translated/part.js:622
msgid "Revision"
msgstr ""
-#: part/models.py:845
+#: part/models.py:847
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:892 part/templates/part/part_base.html:347
+#: part/models.py:894 part/templates/part/part_base.html:347
msgid "Default Supplier"
msgstr ""
-#: part/models.py:893
+#: part/models.py:895
msgid "Default supplier part"
msgstr ""
-#: part/models.py:900
+#: part/models.py:902
msgid "Default Expiry"
msgstr ""
-#: part/models.py:901
+#: part/models.py:903
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:906 part/templates/part/part_base.html:196
+#: part/models.py:908 part/templates/part/part_base.html:196
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:907
+#: part/models.py:909
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:914
+#: part/models.py:916
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:920
+#: part/models.py:922
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:926
+#: part/models.py:928
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:932
+#: part/models.py:934
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:937
+#: part/models.py:939
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:942
+#: part/models.py:944
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:946 plugin/models.py:46
-#: templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:96
-#: templates/js/translated/table_filters.js:295
-#: templates/js/translated/table_filters.js:417
-msgid "Active"
-msgstr ""
-
-#: part/models.py:947
+#: part/models.py:949
msgid "Is this part active?"
msgstr ""
-#: part/models.py:952
+#: part/models.py:954
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:957
+#: part/models.py:959
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:960
+#: part/models.py:962
msgid "BOM checksum"
msgstr ""
-#: part/models.py:960
+#: part/models.py:962
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:963
+#: part/models.py:965
msgid "BOM checked by"
msgstr ""
-#: part/models.py:965
+#: part/models.py:967
msgid "BOM checked date"
msgstr ""
-#: part/models.py:969
+#: part/models.py:971
msgid "Creation User"
msgstr ""
-#: part/models.py:1781
+#: part/models.py:1783
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2326
+#: part/models.py:2333
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2343
+#: part/models.py:2350
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2363 templates/js/translated/part.js:1707
-#: templates/js/translated/stock.js:1276
+#: part/models.py:2370 templates/js/translated/part.js:1714
+#: templates/js/translated/stock.js:1284
msgid "Test Name"
msgstr ""
-#: part/models.py:2364
+#: part/models.py:2371
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2376
msgid "Test Description"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2377
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2375 templates/js/translated/part.js:1716
+#: part/models.py:2382 templates/js/translated/part.js:1723
#: templates/js/translated/table_filters.js:281
msgid "Required"
msgstr ""
-#: part/models.py:2376
+#: part/models.py:2383
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2381 templates/js/translated/part.js:1724
+#: part/models.py:2388 templates/js/translated/part.js:1731
msgid "Requires Value"
msgstr ""
-#: part/models.py:2382
+#: part/models.py:2389
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2387 templates/js/translated/part.js:1731
+#: part/models.py:2394 templates/js/translated/part.js:1738
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2388
+#: part/models.py:2395
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2399
+#: part/models.py:2406
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2435
+#: part/models.py:2442
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2443
+#: part/models.py:2450
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2450
+#: part/models.py:2457
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2480
+#: part/models.py:2487
msgid "Parent Part"
msgstr ""
-#: part/models.py:2482 part/models.py:2531 part/models.py:2532
-#: templates/InvenTree/settings/settings.html:178
+#: part/models.py:2489 part/models.py:2538 part/models.py:2539
+#: templates/InvenTree/settings/settings.html:181
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2484
+#: part/models.py:2491
msgid "Data"
msgstr ""
-#: part/models.py:2484
+#: part/models.py:2491
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2536 templates/InvenTree/settings/settings.html:187
+#: part/models.py:2543 templates/InvenTree/settings/settings.html:190
msgid "Default Value"
msgstr ""
-#: part/models.py:2537
+#: part/models.py:2544
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2614
+#: part/models.py:2621
msgid "Select parent part"
msgstr ""
-#: part/models.py:2622
+#: part/models.py:2629
msgid "Sub part"
msgstr ""
-#: part/models.py:2623
+#: part/models.py:2630
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2629
+#: part/models.py:2636
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2631 templates/js/translated/bom.js:566
-#: templates/js/translated/bom.js:640
+#: part/models.py:2638 templates/js/translated/bom.js:578
+#: templates/js/translated/bom.js:652
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2638
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2634
+#: part/models.py:2641
msgid "Overage"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2642
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2638
+#: part/models.py:2645
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2641
+#: part/models.py:2648
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2643
+#: part/models.py:2650
msgid "Checksum"
msgstr ""
-#: part/models.py:2643
+#: part/models.py:2650
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2647 templates/js/translated/bom.js:657
+#: part/models.py:2654 templates/js/translated/bom.js:669
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2648
+#: part/models.py:2655
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2653 templates/js/translated/bom.js:649
+#: part/models.py:2660 templates/js/translated/bom.js:661
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2654
+#: part/models.py:2661
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2739 stock/models.py:355
+#: part/models.py:2746 stock/models.py:357
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2748 part/models.py:2750
+#: part/models.py:2755 part/models.py:2757
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2879
+#: part/models.py:2886
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2908
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2920
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2928
msgid "Substitute part"
msgstr ""
-#: part/models.py:2932
+#: part/models.py:2939
msgid "Part 1"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2943
msgid "Part 2"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2943
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2968
+#: part/models.py:2975
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4327,7 +4418,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:253
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:270
msgid "BOM actions"
msgstr ""
@@ -4499,7 +4590,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:348
msgid "Duplicate Part"
msgstr ""
@@ -4533,145 +4624,149 @@ msgid "Showing stock for all variants of %(full_name)s"
msgstr ""
#: part/templates/part/detail.html:43
+msgid "Part Stock Allocations"
+msgstr ""
+
+#: part/templates/part/detail.html:60
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:48
+#: part/templates/part/detail.html:65
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:105
+#: part/templates/part/detail.html:122
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:142
+#: part/templates/part/detail.html:159
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:146
+#: part/templates/part/detail.html:163
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:147
+#: part/templates/part/detail.html:164
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:174
+#: part/templates/part/detail.html:191
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:45
+#: part/templates/part/detail.html:228 part/templates/part/part_sidebar.html:49
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:215 part/templates/part/detail.html:216
+#: part/templates/part/detail.html:232 part/templates/part/detail.html:233
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:236 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:253 part/templates/part/part_sidebar.html:17
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:241
+#: part/templates/part/detail.html:258
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:245 templates/js/translated/bom.js:70
+#: part/templates/part/detail.html:262 templates/js/translated/bom.js:70
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:247
+#: part/templates/part/detail.html:264
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:257
+#: part/templates/part/detail.html:274
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:259 templates/js/translated/part.js:272
+#: part/templates/part/detail.html:276 templates/js/translated/part.js:272
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:278
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:266
+#: part/templates/part/detail.html:283
msgid "New BOM Item"
msgstr ""
-#: part/templates/part/detail.html:267
+#: part/templates/part/detail.html:284
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:280
+#: part/templates/part/detail.html:297
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:297
+#: part/templates/part/detail.html:314
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:322
+#: part/templates/part/detail.html:339
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:332
+#: part/templates/part/detail.html:349
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:360
+#: part/templates/part/detail.html:377
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:393
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:558
+#: part/templates/part/detail.html:575
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:559
+#: part/templates/part/detail.html:576
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:608
+#: part/templates/part/detail.html:625
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:652
+#: part/templates/part/detail.html:682
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:660
+#: part/templates/part/detail.html:690
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:755
+#: part/templates/part/detail.html:785
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:812
+#: part/templates/part/detail.html:842
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:925
+#: part/templates/part/detail.html:955
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:937
+#: part/templates/part/detail.html:967
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:949
+#: part/templates/part/detail.html:979
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1038
+#: part/templates/part/detail.html:1068
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4786,7 +4881,7 @@ msgstr ""
#: templates/js/translated/company.js:508
#: templates/js/translated/company.js:765
#: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:527 templates/js/translated/part.js:604
+#: templates/js/translated/part.js:533 templates/js/translated/part.js:610
msgid "Inactive"
msgstr ""
@@ -4805,10 +4900,6 @@ msgstr ""
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1294
-msgid "On Order"
-msgstr ""
-
#: part/templates/part/part_base.html:210 templates/InvenTree/index.html:178
msgid "Required for Build Orders"
msgstr ""
@@ -4821,12 +4912,12 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:678
+#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:690
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1125
-#: templates/js/translated/part.js:1298
+#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1132
+#: templates/js/translated/part.js:1305
msgid "Building"
msgstr ""
@@ -4878,7 +4969,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:632
+#: templates/js/translated/bom.js:644
msgid "No supplier pricing available"
msgstr ""
@@ -4920,7 +5011,12 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/templates/part/part_sidebar.html:41
+#: part/templates/part/part_sidebar.html:31
+#: stock/templates/stock/stock_sidebar.html:8
+msgid "Allocations"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:45
msgid "Test Templates"
msgstr ""
@@ -4993,7 +5089,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:626
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:638
msgid "Supplier Cost"
msgstr ""
@@ -5015,7 +5111,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1690
+#: part/templates/part/prices.html:215 part/views.py:1699
msgid "Add Internal Price Break"
msgstr ""
@@ -5035,9 +5131,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:588
-#: templates/js/translated/part.js:491 templates/js/translated/part.js:1115
-#: templates/js/translated/part.js:1302
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:600
+#: templates/js/translated/part.js:497 templates/js/translated/part.js:1122
+#: templates/js/translated/part.js:1309
msgid "No Stock"
msgstr ""
@@ -5054,116 +5150,116 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:116
+#: part/templatetags/inventree_extras.py:125
msgid "Unknown database"
msgstr ""
-#: part/views.py:92
+#: part/views.py:93
msgid "Set Part Category"
msgstr ""
-#: part/views.py:142
+#: part/views.py:143
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:214
+#: part/views.py:215
msgid "Match References"
msgstr ""
-#: part/views.py:502
+#: part/views.py:511
msgid "None"
msgstr ""
-#: part/views.py:561
+#: part/views.py:570
msgid "Part QR Code"
msgstr ""
-#: part/views.py:663
+#: part/views.py:672
msgid "Select Part Image"
msgstr ""
-#: part/views.py:689
+#: part/views.py:698
msgid "Updated part image"
msgstr ""
-#: part/views.py:692
+#: part/views.py:701
msgid "Part image not found"
msgstr ""
-#: part/views.py:766
+#: part/views.py:775
msgid "Match Parts"
msgstr ""
-#: part/views.py:1101
+#: part/views.py:1110
msgid "Export Bill of Materials"
msgstr ""
-#: part/views.py:1150
+#: part/views.py:1159
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1157
+#: part/views.py:1166
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1166
+#: part/views.py:1175
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1315
+#: part/views.py:1324
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1325
+#: part/views.py:1334
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1332
+#: part/views.py:1341
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1391 templates/js/translated/part.js:315
+#: part/views.py:1400 templates/js/translated/part.js:315
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1429
+#: part/views.py:1438
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1435
+#: part/views.py:1444
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1444
+#: part/views.py:1453
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1545
+#: part/views.py:1554
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1601
+#: part/views.py:1610
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1623
+#: part/views.py:1632
msgid "Added new price break"
msgstr ""
-#: part/views.py:1699
+#: part/views.py:1708
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1707
+#: part/views.py:1716
msgid "Delete Internal Price Break"
msgstr ""
-#: plugin/integration.py:124
+#: plugin/integration.py:138
msgid "No author found"
msgstr ""
-#: plugin/integration.py:136
+#: plugin/integration.py:152
msgid "No date found"
msgstr ""
@@ -5191,7 +5287,7 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:195
+#: plugin/models.py:199
msgid "Plugin"
msgstr ""
@@ -5357,12 +5453,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:517 stock/templates/stock/item_base.html:156
+#: stock/models.py:519 stock/templates/stock/item_base.html:156
#: templates/js/translated/build.js:293 templates/js/translated/build.js:697
#: templates/js/translated/build.js:1073
#: templates/js/translated/model_renderers.js:95
#: templates/js/translated/order.js:99 templates/js/translated/order.js:1945
-#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:415
+#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:423
msgid "Serial Number"
msgstr ""
@@ -5371,19 +5467,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:1948
+#: stock/models.py:1976
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:1954
+#: stock/models.py:1982
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:49
+#: templates/InvenTree/settings/plugin.html:50
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2367
+#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2525
msgid "Date"
msgstr ""
@@ -5396,23 +5492,27 @@ msgid "Fail"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:123
-#: stock/templates/stock/stock_sidebar.html:12
+#: stock/templates/stock/stock_sidebar.html:16
msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:578 templates/js/translated/stock.js:748
-#: templates/js/translated/stock.js:2627
+#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756
+#: templates/js/translated/stock.js:2785
msgid "Serial"
msgstr ""
-#: stock/api.py:478
+#: stock/api.py:476
msgid "Quantity is required"
msgstr ""
-#: stock/forms.py:77 stock/forms.py:251 stock/models.py:574
+#: stock/api.py:483
+msgid "Valid part must be supplied"
+msgstr ""
+
+#: stock/forms.py:77 stock/forms.py:251 stock/models.py:576
#: stock/templates/stock/item_base.html:193
-#: templates/js/translated/stock.js:1701
+#: templates/js/translated/stock.js:1709
msgid "Expiry Date"
msgstr ""
@@ -5460,228 +5560,228 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:60 stock/models.py:611
+#: stock/models.py:62 stock/models.py:613
#: stock/templates/stock/item_base.html:416
msgid "Owner"
msgstr ""
-#: stock/models.py:61 stock/models.py:612
+#: stock/models.py:63 stock/models.py:614
msgid "Select Owner"
msgstr ""
-#: stock/models.py:336
+#: stock/models.py:338
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:372
+#: stock/models.py:374
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:382 stock/models.py:391
+#: stock/models.py:384 stock/models.py:393
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:383
+#: stock/models.py:385
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:405
+#: stock/models.py:407
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:413
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:418
+#: stock/models.py:420
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:461
+#: stock/models.py:463
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:470
+#: stock/models.py:472
msgid "Base part"
msgstr ""
-#: stock/models.py:478
+#: stock/models.py:480
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:484 stock/templates/stock/location.html:16
+#: stock/models.py:486 stock/templates/stock/location.html:16
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:487
+#: stock/models.py:489
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:494
+#: stock/models.py:496
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:500 stock/templates/stock/item_base.html:298
+#: stock/models.py:502 stock/templates/stock/item_base.html:298
msgid "Installed In"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:505
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:521
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:535
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:537
+#: stock/models.py:539
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:546
+#: stock/models.py:548
msgid "Source Build"
msgstr ""
-#: stock/models.py:548
+#: stock/models.py:550
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:559
+#: stock/models.py:561
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:562
+#: stock/models.py:564
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:568
+#: stock/models.py:570
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:575
+#: stock/models.py:577
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:588
+#: stock/models.py:590
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:588
+#: stock/models.py:590
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:598 stock/templates/stock/item.html:111
+#: stock/models.py:600 stock/templates/stock/item.html:128
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:607
+#: stock/models.py:609
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1068
+#: stock/models.py:1096
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1074
+#: stock/models.py:1102
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1080
+#: stock/models.py:1108
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1083
+#: stock/models.py:1111
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1086
+#: stock/models.py:1114
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1093
+#: stock/models.py:1121
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1164
+#: stock/models.py:1192
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1167
+#: stock/models.py:1195
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1170
+#: stock/models.py:1198
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1173
+#: stock/models.py:1201
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1176
+#: stock/models.py:1204
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1179
+#: stock/models.py:1207
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1186 stock/serializers.py:774
+#: stock/models.py:1214 stock/serializers.py:775
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1190
+#: stock/models.py:1218
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1194
+#: stock/models.py:1222
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1198
+#: stock/models.py:1226
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1369
+#: stock/models.py:1397
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1868
+#: stock/models.py:1896
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1925
+#: stock/models.py:1953
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1931
+#: stock/models.py:1959
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1949
+#: stock/models.py:1977
msgid "Test name"
msgstr ""
-#: stock/models.py:1955 templates/js/translated/table_filters.js:271
+#: stock/models.py:1983 templates/js/translated/table_filters.js:271
msgid "Test result"
msgstr ""
-#: stock/models.py:1961
+#: stock/models.py:1989
msgid "Test output value"
msgstr ""
-#: stock/models.py:1968
+#: stock/models.py:1996
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1974
+#: stock/models.py:2002
msgid "Test notes"
msgstr ""
@@ -5706,7 +5806,7 @@ msgstr ""
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:326 stock/serializers.py:731 stock/serializers.py:972
+#: stock/serializers.py:326 stock/serializers.py:732 stock/serializers.py:973
msgid "Destination stock location"
msgstr ""
@@ -5718,63 +5818,63 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:588
+#: stock/serializers.py:589
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:592
+#: stock/serializers.py:593
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:597
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:626
+#: stock/serializers.py:627
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:632
+#: stock/serializers.py:633
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:640
+#: stock/serializers.py:641
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:650 stock/serializers.py:880
+#: stock/serializers.py:651 stock/serializers.py:881
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:738
+#: stock/serializers.py:739
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:743
+#: stock/serializers.py:744
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:744
+#: stock/serializers.py:745
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:749
+#: stock/serializers.py:750
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:750
+#: stock/serializers.py:751
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:760
+#: stock/serializers.py:761
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:842
+#: stock/serializers.py:843
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:870
+#: stock/serializers.py:871
msgid "Stock transaction notes"
msgstr ""
@@ -5787,47 +5887,51 @@ msgid "New Entry"
msgstr ""
#: stock/templates/stock/item.html:48
-msgid "Child Stock Items"
-msgstr ""
-
-#: stock/templates/stock/item.html:55
-msgid "This stock item does not have any child items"
+msgid "Stock Item Allocations"
msgstr ""
#: stock/templates/stock/item.html:64
-#: stock/templates/stock/stock_sidebar.html:8
-msgid "Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:57
-msgid "Test Report"
+msgid "Child Stock Items"
msgstr ""
#: stock/templates/stock/item.html:72
+msgid "This stock item does not have any child items"
+msgstr ""
+
+#: stock/templates/stock/item.html:81
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:57
+msgid "Test Report"
+msgstr ""
+
+#: stock/templates/stock/item.html:89
msgid "Delete Test Data"
msgstr ""
-#: stock/templates/stock/item.html:76
+#: stock/templates/stock/item.html:93
msgid "Add Test Data"
msgstr ""
-#: stock/templates/stock/item.html:133
+#: stock/templates/stock/item.html:150
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:137 stock/views.py:482
+#: stock/templates/stock/item.html:154 stock/views.py:482
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304
+#: stock/templates/stock/item.html:309 stock/templates/stock/item.html:334
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:324
+#: stock/templates/stock/item.html:354
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:338
+#: stock/templates/stock/item.html:368
msgid "Delete Test Result"
msgstr ""
@@ -5952,7 +6056,7 @@ msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:206
-#: templates/js/translated/stock.js:1714
+#: templates/js/translated/stock.js:1722
msgid "Last Updated"
msgstr ""
@@ -6111,7 +6215,7 @@ msgid "Sublocations"
msgstr ""
#: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164
-#: templates/stats.html:97 users/models.py:42
+#: templates/stats.html:109 users/models.py:42
msgid "Stock Locations"
msgstr ""
@@ -6135,7 +6239,7 @@ msgstr ""
msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/stock_sidebar.html:16
+#: stock/templates/stock/stock_sidebar.html:20
msgid "Child Items"
msgstr ""
@@ -6164,7 +6268,7 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:162
+#: stock/views.py:162 templates/js/translated/stock.js:139
msgid "Edit Stock Location"
msgstr ""
@@ -6204,7 +6308,7 @@ msgstr ""
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:727 templates/js/translated/stock.js:1066
+#: stock/views.py:727 templates/js/translated/stock.js:1074
msgid "Confirm stock adjustment"
msgstr ""
@@ -6212,7 +6316,7 @@ msgstr ""
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:324
+#: stock/views.py:760 templates/js/translated/stock.js:332
msgid "Edit Stock Item"
msgstr ""
@@ -6224,7 +6328,7 @@ msgstr ""
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1153 templates/js/translated/stock.js:304
+#: stock/views.py:1153 templates/js/translated/stock.js:312
msgid "Duplicate Stock Item"
msgstr ""
@@ -6268,6 +6372,18 @@ msgstr ""
msgid "The requested page does not exist"
msgstr ""
+#: templates/500.html:5 templates/500.html:11
+msgid "Internal Server Error"
+msgstr ""
+
+#: templates/500.html:14
+msgid "The InvenTree server raised an internal error"
+msgstr ""
+
+#: templates/500.html:15
+msgid "Refer to the error log in the admin interface for further details"
+msgstr ""
+
#: templates/503.html:10 templates/503.html:35
msgid "Site is in Maintenance"
msgstr ""
@@ -6390,7 +6506,7 @@ msgid "Signup"
msgstr ""
#: templates/InvenTree/settings/mixins/settings.html:5
-#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:118
+#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113
msgid "Settings"
msgstr ""
@@ -6431,43 +6547,43 @@ msgstr ""
msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage."
msgstr ""
-#: templates/InvenTree/settings/plugin.html:32
+#: templates/InvenTree/settings/plugin.html:33
msgid "Plugins"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:37
+#: templates/InvenTree/settings/plugin.html:38
#: templates/js/translated/plugin.js:15
msgid "Install Plugin"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:46 templates/navbar.html:111
+#: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111
#: users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin.html:49
#: templates/InvenTree/settings/plugin_settings.html:28
msgid "Author"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:50
+#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin_settings.html:43
msgid "Version"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:91
+#: templates/InvenTree/settings/plugin.html:92
msgid "Inactive plugins"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:114
+#: templates/InvenTree/settings/plugin.html:115
msgid "Plugin Error Stack"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:123
+#: templates/InvenTree/settings/plugin.html:124
msgid "Stage"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:125
+#: templates/InvenTree/settings/plugin.html:126
msgid "Message"
msgstr ""
@@ -6555,37 +6671,37 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:75
+#: templates/InvenTree/settings/settings.html:78
msgid "Edit Plugin Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:77
+#: templates/InvenTree/settings/settings.html:80
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:79
+#: templates/InvenTree/settings/settings.html:82
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:168
+#: templates/InvenTree/settings/settings.html:171
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:190
-#: templates/InvenTree/settings/settings.html:289
+#: templates/InvenTree/settings/settings.html:193
+#: templates/InvenTree/settings/settings.html:292
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:191
-#: templates/InvenTree/settings/settings.html:290
+#: templates/InvenTree/settings/settings.html:194
+#: templates/InvenTree/settings/settings.html:293
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:269
+#: templates/InvenTree/settings/settings.html:272
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:273
+#: templates/InvenTree/settings/settings.html:276
msgid "ID"
msgstr ""
@@ -6763,124 +6879,105 @@ msgstr ""
msgid "Remove multifactor"
msgstr ""
-#: templates/InvenTree/settings/user.html:219
+#: templates/InvenTree/settings/user.html:220
+msgid "Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:226
+msgid "Log out active sessions (except this one)"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:227
+msgid "Log Out Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:236
+msgid "unknown on unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:237
+msgid "unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:241
+msgid "IP Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:242
+msgid "Device"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:243
+msgid "Last Activity"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:252
+#, python-format
+msgid "%(time)s ago (this session)"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:254
+#, python-format
+msgid "%(time)s ago"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:266
+msgid "Do you really want to remove the selected email address?"
+msgstr ""
+
#: templates/InvenTree/settings/user_display.html:25
msgid "Theme Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:227
#: templates/InvenTree/settings/user_display.html:35
msgid "Select theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:237
#: templates/InvenTree/settings/user_display.html:46
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:246
#: templates/InvenTree/settings/user_display.html:54
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:254
#: templates/InvenTree/settings/user_display.html:63
msgid "Select language"
msgstr ""
-#: templates/InvenTree/settings/user.html:270
#: templates/InvenTree/settings/user_display.html:79
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:272
#: templates/InvenTree/settings/user_display.html:81
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:279
#: templates/InvenTree/settings/user_display.html:88
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:281
#: templates/InvenTree/settings/user_display.html:91
msgid "Some languages are not complete"
msgstr ""
-#: templates/InvenTree/settings/user.html:283
#: templates/InvenTree/settings/user_display.html:93
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user.html:285
+#: templates/InvenTree/settings/user_display.html:95
+msgid "and hidden."
+msgstr ""
+
#: templates/InvenTree/settings/user_display.html:95
msgid "Show them too"
msgstr ""
-#: templates/InvenTree/settings/user.html:292
#: templates/InvenTree/settings/user_display.html:101
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user.html:293
-#, python-format
-msgid "Native language translation of the\n"
-" InvenTree web application is community contributed via crowdin. Contributions are\n"
-" welcomed and encouraged."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:302
-msgid "Active Sessions"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:308
-msgid "Log out active sessions (except this one)"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:309
-msgid "Log Out Active Sessions"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:318
-msgid "unknown on unknown"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:319
-msgid "unknown"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:323
-msgid "IP Address"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:324
-msgid "Device"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:325
-msgid "Last Activity"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:334
-#, python-format
-msgid "%(time)s ago (this session)"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:336
-#, python-format
-msgid "%(time)s ago"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:348
-msgid "Do you really want to remove the selected email address?"
-msgstr ""
-
-#: templates/InvenTree/settings/user_display.html:95
-msgid "and hidden."
-msgstr ""
-
#: templates/InvenTree/settings/user_display.html:102
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
@@ -6899,9 +6996,9 @@ msgid "InvenTree Version Information"
msgstr ""
#: templates/about.html:11 templates/about.html:105
-#: templates/js/translated/bom.js:395 templates/js/translated/modals.js:53
-#: templates/js/translated/modals.js:573 templates/js/translated/modals.js:667
-#: templates/js/translated/modals.js:970 templates/modals.html:15
+#: templates/js/translated/bom.js:407 templates/js/translated/modals.js:53
+#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
+#: templates/js/translated/modals.js:983 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -7178,13 +7275,13 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1103
+#: templates/js/translated/bom.js:1117
msgid "Required Quantity"
msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:579 templates/js/translated/build.js:1189
+#: templates/js/translated/bom.js:591 templates/js/translated/build.js:1189
#: templates/js/translated/build.js:1810
#: templates/js/translated/table_filters.js:178
msgid "Available"
@@ -7208,10 +7305,6 @@ msgstr ""
msgid "Click on the following link to view this part"
msgstr ""
-#: templates/email/low_stock_notification.html:17
-msgid "Total Stock"
-msgstr ""
-
#: templates/email/low_stock_notification.html:19
msgid "Minimum Quantity"
msgstr ""
@@ -7232,11 +7325,11 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1040
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1053
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1041
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1054
msgid "No response from the InvenTree server"
msgstr ""
@@ -7248,27 +7341,27 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1063
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1051
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1064
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1068
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1056
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1069
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1073
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1061
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1074
msgid "The requested resource could not be located on the server"
msgstr ""
@@ -7280,11 +7373,11 @@ msgstr ""
msgid "HTTP method not allowed at URL"
msgstr ""
-#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1065
+#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1078
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1079
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -7353,7 +7446,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:140
-#: templates/js/translated/modals.js:1030
+#: templates/js/translated/modals.js:1043
msgid "Invalid server response"
msgstr ""
@@ -7381,7 +7474,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1018
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026
msgid "Remove stock item"
msgstr ""
@@ -7428,12 +7521,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73
-#: templates/js/translated/order.js:369 templates/js/translated/stock.js:510
+#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74
-#: templates/js/translated/order.js:370 templates/js/translated/stock.js:511
+#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519
msgid "Select file format"
msgstr ""
@@ -7489,87 +7582,87 @@ msgstr ""
msgid "Remove substitute part"
msgstr ""
-#: templates/js/translated/bom.js:340
-msgid "Select and add a new variant item using the input below"
+#: templates/js/translated/bom.js:352
+msgid "Select and add a new substitute part using the input below"
msgstr ""
-#: templates/js/translated/bom.js:351
+#: templates/js/translated/bom.js:363
msgid "Are you sure you wish to remove this substitute part link?"
msgstr ""
-#: templates/js/translated/bom.js:357
+#: templates/js/translated/bom.js:369
msgid "Remove Substitute Part"
msgstr ""
-#: templates/js/translated/bom.js:396
+#: templates/js/translated/bom.js:408
msgid "Add Substitute"
msgstr ""
-#: templates/js/translated/bom.js:397
+#: templates/js/translated/bom.js:409
msgid "Edit BOM Item Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:516
+#: templates/js/translated/bom.js:528
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:520 templates/js/translated/build.js:1171
+#: templates/js/translated/bom.js:532 templates/js/translated/build.js:1171
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:525
+#: templates/js/translated/bom.js:537
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:597
+#: templates/js/translated/bom.js:609
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:612
+#: templates/js/translated/bom.js:624
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:619
+#: templates/js/translated/bom.js:631
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:668 templates/js/translated/bom.js:757
+#: templates/js/translated/bom.js:680 templates/js/translated/bom.js:769
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:728
+#: templates/js/translated/bom.js:740
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:730
+#: templates/js/translated/bom.js:742
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:732
+#: templates/js/translated/bom.js:744
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:734 templates/js/translated/bom.js:908
+#: templates/js/translated/bom.js:746 templates/js/translated/bom.js:920
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:736 templates/js/translated/bom.js:891
+#: templates/js/translated/bom.js:748 templates/js/translated/bom.js:903
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:830 templates/js/translated/build.js:915
+#: templates/js/translated/bom.js:842 templates/js/translated/build.js:915
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:886
+#: templates/js/translated/bom.js:898
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:1086 templates/js/translated/build.js:1155
+#: templates/js/translated/bom.js:1100 templates/js/translated/build.js:1155
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1108
+#: templates/js/translated/bom.js:1122
msgid "Inherited from parent BOM"
msgstr ""
@@ -7725,9 +7818,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1206
-#: templates/js/translated/part.js:1617 templates/js/translated/stock.js:1512
-#: templates/js/translated/stock.js:2321
+#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1213
+#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1520
+#: templates/js/translated/stock.js:2479
msgid "Select"
msgstr ""
@@ -7735,7 +7828,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2540
+#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2698
msgid "No user information"
msgstr ""
@@ -7808,34 +7901,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:511
-#: templates/js/translated/part.js:596
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:517
+#: templates/js/translated/part.js:602
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:515
-#: templates/js/translated/part.js:600
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:521
+#: templates/js/translated/part.js:606
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:690
+#: templates/js/translated/company.js:631 templates/js/translated/part.js:696
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:732
+#: templates/js/translated/company.js:668 templates/js/translated/part.js:738
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:733
+#: templates/js/translated/company.js:669 templates/js/translated/part.js:739
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:750
+#: templates/js/translated/company.js:688 templates/js/translated/part.js:756
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:762
+#: templates/js/translated/company.js:699 templates/js/translated/part.js:768
msgid "Delete Parameter"
msgstr ""
@@ -7844,12 +7937,12 @@ msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:420
+#: templates/js/translated/filters.js:429
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:421
+#: templates/js/translated/filters.js:430
msgid "false"
msgstr ""
@@ -7869,7 +7962,7 @@ msgstr ""
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:329
+#: templates/js/translated/filters.js:338
msgid "Create filter"
msgstr ""
@@ -7898,20 +7991,20 @@ msgstr ""
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1080 templates/modals.html:19
+#: templates/js/translated/forms.js:1082 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1471
+#: templates/js/translated/forms.js:1487
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1675
+#: templates/js/translated/forms.js:1691
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1895
+#: templates/js/translated/forms.js:1930
msgid "Clear input"
msgstr ""
@@ -7924,7 +8017,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1042
+#: templates/js/translated/stock.js:1050
msgid "Select Stock Items"
msgstr ""
@@ -7974,12 +8067,12 @@ msgid "Select Label Template"
msgstr ""
#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
-#: templates/js/translated/modals.js:599
+#: templates/js/translated/modals.js:610
msgid "Cancel"
msgstr ""
#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:666 templates/js/translated/modals.js:969
+#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:982
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
@@ -7988,47 +8081,47 @@ msgstr ""
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:381
+#: templates/js/translated/modals.js:392
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:540
+#: templates/js/translated/modals.js:551
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:598
+#: templates/js/translated/modals.js:609
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:655
+#: templates/js/translated/modals.js:666
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:921
+#: templates/js/translated/modals.js:934
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:921
+#: templates/js/translated/modals.js:934
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:946
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1030
+#: templates/js/translated/modals.js:1043
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1045
+#: templates/js/translated/modals.js:1058
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1046
+#: templates/js/translated/modals.js:1059
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1069
+#: templates/js/translated/modals.js:1082
msgid "Error requesting form data"
msgstr ""
@@ -8052,23 +8145,24 @@ msgstr ""
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:236
+#: templates/js/translated/model_renderers.js:249
+#: templates/js/translated/model_renderers.js:270
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:253
+#: templates/js/translated/model_renderers.js:287
msgid "Shipment ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:273
+#: templates/js/translated/model_renderers.js:307
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:310
+#: templates/js/translated/model_renderers.js:344
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:339
+#: templates/js/translated/model_renderers.js:373
msgid "Supplier Part ID"
msgstr ""
@@ -8116,7 +8210,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2123
+#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2131
msgid "Stock Status"
msgstr ""
@@ -8140,7 +8234,7 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:790 templates/js/translated/part.js:803
+#: templates/js/translated/order.js:790 templates/js/translated/part.js:809
msgid "No purchase orders found"
msgstr ""
@@ -8165,7 +8259,7 @@ msgid "Total"
msgstr ""
#: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163
-#: templates/js/translated/part.js:1834 templates/js/translated/part.js:2045
+#: templates/js/translated/part.js:1841 templates/js/translated/part.js:2052
msgid "Unit Price"
msgstr ""
@@ -8181,7 +8275,7 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1166 templates/js/translated/part.js:935
+#: templates/js/translated/order.js:1166 templates/js/translated/part.js:942
msgid "Receive line item"
msgstr ""
@@ -8250,7 +8344,7 @@ msgid "Delete Stock Allocation"
msgstr ""
#: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048
-#: templates/js/translated/stock.js:1428
+#: templates/js/translated/stock.js:1436
msgid "Shipped to customer"
msgstr ""
@@ -8378,144 +8472,148 @@ msgstr ""
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:412
+#: templates/js/translated/part.js:351
+msgid "Create Part Variant"
+msgstr ""
+
+#: templates/js/translated/part.js:418
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:414
+#: templates/js/translated/part.js:420
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:419
+#: templates/js/translated/part.js:425
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:421
+#: templates/js/translated/part.js:427
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:438
+#: templates/js/translated/part.js:444
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:448
+#: templates/js/translated/part.js:454
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:451
+#: templates/js/translated/part.js:457
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:475
+#: templates/js/translated/part.js:481
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:503 templates/js/translated/part.js:588
+#: templates/js/translated/part.js:509 templates/js/translated/part.js:594
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:507 templates/js/translated/part.js:592
+#: templates/js/translated/part.js:513 templates/js/translated/part.js:598
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:519
+#: templates/js/translated/part.js:525
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:529
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:638
+#: templates/js/translated/part.js:644
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1005
+#: templates/js/translated/part.js:1012
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1029
+#: templates/js/translated/part.js:1036
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1096 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:1363
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1266
+#: templates/js/translated/part.js:1273
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1289
+#: templates/js/translated/part.js:1296
#: templates/js/translated/table_filters.js:430
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1380 templates/js/translated/part.js:1552
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559
+#: templates/js/translated/stock.js:2440
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1396
+#: templates/js/translated/part.js:1403
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1571 templates/js/translated/stock.js:2301
+#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2459
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1635
+#: templates/js/translated/part.js:1642
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1649 templates/js/translated/stock.js:2345
+#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2503
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1693
+#: templates/js/translated/part.js:1700
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1744 templates/js/translated/stock.js:1234
+#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1242
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1745 templates/js/translated/stock.js:1235
+#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1243
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1751
+#: templates/js/translated/part.js:1758
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1773
+#: templates/js/translated/part.js:1780
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1787
+#: templates/js/translated/part.js:1794
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1812
+#: templates/js/translated/part.js:1819
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1867
+#: templates/js/translated/part.js:1874
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1868
+#: templates/js/translated/part.js:1875
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1969
+#: templates/js/translated/part.js:1976
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1988
+#: templates/js/translated/part.js:1995
msgid "Single Price Difference"
msgstr ""
@@ -8589,340 +8687,344 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:73
+#: templates/js/translated/stock.js:74
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:173
+#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:181
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/stock.js:93 templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:94 templates/js/translated/stock.js:183
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/stock.js:101
+#: templates/js/translated/stock.js:102
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:110
+#: templates/js/translated/stock.js:111
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:146
+#: templates/js/translated/stock.js:154
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:186
+#: templates/js/translated/stock.js:194
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:225
+#: templates/js/translated/stock.js:233
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:231
+#: templates/js/translated/stock.js:239
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:374
+#: templates/js/translated/stock.js:382
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:387
+#: templates/js/translated/stock.js:395
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:412
+#: templates/js/translated/stock.js:420
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:416 templates/js/translated/stock.js:417
+#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:433
+#: templates/js/translated/stock.js:441
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:453
+#: templates/js/translated/stock.js:461
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:462
+#: templates/js/translated/stock.js:470
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:507
+#: templates/js/translated/stock.js:515
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:518
+#: templates/js/translated/stock.js:526
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:527
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:628
+#: templates/js/translated/stock.js:636
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:629
+#: templates/js/translated/stock.js:637
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:706
+#: templates/js/translated/stock.js:714
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:707
+#: templates/js/translated/stock.js:715
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:709
+#: templates/js/translated/stock.js:717
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:710
+#: templates/js/translated/stock.js:718
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:796
+#: templates/js/translated/stock.js:804
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:797
+#: templates/js/translated/stock.js:805
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:892
+#: templates/js/translated/stock.js:900
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:893
+#: templates/js/translated/stock.js:901
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:899
+#: templates/js/translated/stock.js:907
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:900
+#: templates/js/translated/stock.js:908
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:904
+#: templates/js/translated/stock.js:912
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:905
+#: templates/js/translated/stock.js:913
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:909
+#: templates/js/translated/stock.js:917
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:910 users/models.py:206
+#: templates/js/translated/stock.js:918 users/models.py:208
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:914 templates/stock_table.html:58
+#: templates/js/translated/stock.js:922 templates/stock_table.html:58
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1003
+#: templates/js/translated/stock.js:1011
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1003
+#: templates/js/translated/stock.js:1011
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1043
+#: templates/js/translated/stock.js:1051
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1201
+#: templates/js/translated/stock.js:1209
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1211
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1208
+#: templates/js/translated/stock.js:1216
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1230
+#: templates/js/translated/stock.js:1238
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1256
+#: templates/js/translated/stock.js:1264
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1313
+#: templates/js/translated/stock.js:1321
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1420
+#: templates/js/translated/stock.js:1428
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1424
+#: templates/js/translated/stock.js:1432
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1432
+#: templates/js/translated/stock.js:1440
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1438
+#: templates/js/translated/stock.js:1446
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1596
+#: templates/js/translated/stock.js:1604
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1601
+#: templates/js/translated/stock.js:1609
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1612
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/stock.js:1616
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1610
+#: templates/js/translated/stock.js:1618
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1616
+#: templates/js/translated/stock.js:1624
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1626
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1620
+#: templates/js/translated/stock.js:1628
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1625
+#: templates/js/translated/stock.js:1633
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1632
+#: templates/js/translated/stock.js:1640
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1634
+#: templates/js/translated/stock.js:1642
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1644
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1640
+#: templates/js/translated/stock.js:1648
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1698
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1763
+#: templates/js/translated/stock.js:1771
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1801
+#: templates/js/translated/stock.js:1809
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1822 templates/js/translated/stock.js:1870
+#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:1878
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1910
+#: templates/js/translated/stock.js:1918
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1937
+#: templates/js/translated/stock.js:1945
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1939
+#: templates/js/translated/stock.js:1947
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:2138
+#: templates/js/translated/stock.js:2146
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2152
+#: templates/js/translated/stock.js:2160
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2153
+#: templates/js/translated/stock.js:2161
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2377
+#: templates/js/translated/stock.js:2340
+msgid "Allocated Quantity"
+msgstr ""
+
+#: templates/js/translated/stock.js:2535
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:2399
+#: templates/js/translated/stock.js:2557
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2424
+#: templates/js/translated/stock.js:2582
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2443
+#: templates/js/translated/stock.js:2601
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2462
+#: templates/js/translated/stock.js:2620
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2480
+#: templates/js/translated/stock.js:2638
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2503
+#: templates/js/translated/stock.js:2661
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2511
+#: templates/js/translated/stock.js:2669
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2552
+#: templates/js/translated/stock.js:2710
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2553
+#: templates/js/translated/stock.js:2711
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2604
+#: templates/js/translated/stock.js:2762
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2655
+#: templates/js/translated/stock.js:2813
msgid "Uninstall Stock Item"
msgstr ""
@@ -9194,11 +9296,11 @@ msgstr ""
msgid "Sell"
msgstr ""
-#: templates/navbar.html:113
+#: templates/navbar.html:114
msgid "Logout"
msgstr ""
-#: templates/navbar.html:115
+#: templates/navbar.html:116
msgid "Login"
msgstr ""
@@ -9246,31 +9348,43 @@ msgstr ""
msgid "Server is deployed using docker"
msgstr ""
-#: templates/stats.html:40
-msgid "Server status"
+#: templates/stats.html:39
+msgid "Plugin Support"
msgstr ""
#: templates/stats.html:43
-msgid "Healthy"
+msgid "Plugin support enabled"
msgstr ""
#: templates/stats.html:45
-msgid "Issues detected"
+msgid "Plugin support disabled"
msgstr ""
#: templates/stats.html:52
-msgid "Background Worker"
+msgid "Server status"
msgstr ""
#: templates/stats.html:55
+msgid "Healthy"
+msgstr ""
+
+#: templates/stats.html:57
+msgid "Issues detected"
+msgstr ""
+
+#: templates/stats.html:64
+msgid "Background Worker"
+msgstr ""
+
+#: templates/stats.html:67
msgid "Background worker not running"
msgstr ""
-#: templates/stats.html:63
+#: templates/stats.html:75
msgid "Email Settings"
msgstr ""
-#: templates/stats.html:66
+#: templates/stats.html:78
msgid "Email settings not configured"
msgstr ""
@@ -9366,35 +9480,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:193
+#: users/models.py:195
msgid "Permission set"
msgstr ""
-#: users/models.py:201
+#: users/models.py:203
msgid "Group"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
msgid "View"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
msgid "Permission to view items"
msgstr ""
-#: users/models.py:206
+#: users/models.py:208
msgid "Permission to add items"
msgstr ""
-#: users/models.py:208
+#: users/models.py:210
msgid "Change"
msgstr ""
-#: users/models.py:208
+#: users/models.py:210
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:210
+#: users/models.py:212
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/sv/LC_MESSAGES/django.po b/InvenTree/locale/sv/LC_MESSAGES/django.po
index 01ce4d0e48..9779928cb1 100644
--- a/InvenTree/locale/sv/LC_MESSAGES/django.po
+++ b/InvenTree/locale/sv/LC_MESSAGES/django.po
@@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-01-10 03:54+0000\n"
-"PO-Revision-Date: 2022-01-10 03:57\n"
+"POT-Creation-Date: 2022-01-29 00:17+0000\n"
+"PO-Revision-Date: 2022-01-29 01:11\n"
"Last-Translator: \n"
"Language-Team: Swedish\n"
"Language: sv_SE\n"
@@ -18,15 +18,15 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 138\n"
-#: InvenTree/api.py:64
+#: InvenTree/api.py:55
msgid "API endpoint not found"
msgstr "API-slutpunkt hittades inte"
-#: InvenTree/api.py:110
+#: InvenTree/api.py:101
msgid "No action specified"
msgstr "Ingen åtgärd specificerad"
-#: InvenTree/api.py:124
+#: InvenTree/api.py:116
msgid "No matching action found"
msgstr "Ingen matchande åtgärd hittades"
@@ -80,41 +80,41 @@ msgstr ""
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:437
+#: InvenTree/helpers.py:439
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:444 order/models.py:279 order/models.py:420
+#: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425
#: stock/views.py:1231
msgid "Invalid quantity provided"
msgstr "Ogiltigt antal angivet"
-#: InvenTree/helpers.py:447
+#: InvenTree/helpers.py:449
msgid "Empty serial number string"
msgstr "Tom serienummersträng"
-#: InvenTree/helpers.py:469 InvenTree/helpers.py:472 InvenTree/helpers.py:475
-#: InvenTree/helpers.py:500
+#: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477
+#: InvenTree/helpers.py:502
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Ogiltig grupp: {g}"
-#: InvenTree/helpers.py:510
+#: InvenTree/helpers.py:512
#, python-brace-format
msgid "Invalid group {group}"
msgstr ""
-#: InvenTree/helpers.py:516
+#: InvenTree/helpers.py:518
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:522
+#: InvenTree/helpers.py:524
msgid "No serial numbers found"
msgstr "Inga serienummer hittades"
-#: InvenTree/helpers.py:526
+#: InvenTree/helpers.py:528
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
@@ -127,7 +127,7 @@ msgstr ""
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:132 stock/models.py:1967
+#: InvenTree/models.py:132 stock/models.py:1995
#: templates/js/translated/attachment.js:119
msgid "Attachment"
msgstr "Bilaga"
@@ -137,15 +137,15 @@ msgid "Select file to attach"
msgstr "Välj fil att bifoga"
#: InvenTree/models.py:139 company/models.py:131 company/models.py:348
-#: company/models.py:564 order/models.py:124 part/models.py:828
+#: company/models.py:564 order/models.py:127 part/models.py:830
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1317
+#: templates/js/translated/company.js:829 templates/js/translated/part.js:1324
msgid "Link"
msgstr ""
-#: InvenTree/models.py:140 build/models.py:330 part/models.py:829
-#: stock/models.py:527
+#: InvenTree/models.py:140 build/models.py:332 part/models.py:831
+#: stock/models.py:529
msgid "Link to external URL"
msgstr ""
@@ -157,10 +157,11 @@ msgstr "Kommentar"
msgid "File comment"
msgstr "Fil kommentar"
-#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213
-#: common/models.py:1214 part/models.py:2258 part/models.py:2278
+#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1223
+#: common/models.py:1224 common/models.py:1452 common/models.py:1453
+#: part/models.py:2265 part/models.py:2285
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2534
+#: templates/js/translated/stock.js:2692
msgid "User"
msgstr "Användare"
@@ -197,42 +198,42 @@ msgstr "Fel vid namnbyte av fil"
msgid "Invalid choice"
msgstr "Ogiltigt val"
-#: InvenTree/models.py:277 InvenTree/models.py:278 company/models.py:415
-#: label/models.py:112 part/models.py:772 part/models.py:2442
-#: plugin/models.py:40 report/models.py:181
+#: InvenTree/models.py:277 InvenTree/models.py:278 common/models.py:1438
+#: company/models.py:415 label/models.py:112 part/models.py:774
+#: part/models.py:2449 plugin/models.py:40 report/models.py:181
#: templates/InvenTree/settings/mixins/urls.html:13
-#: templates/InvenTree/settings/plugin.html:47
-#: templates/InvenTree/settings/plugin.html:124
+#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin.html:125
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:279
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:561
-#: templates/js/translated/part.js:700 templates/js/translated/part.js:1624
-#: templates/js/translated/stock.js:2327
+#: templates/InvenTree/settings/settings.html:282
+#: templates/js/translated/company.js:641 templates/js/translated/part.js:567
+#: templates/js/translated/part.js:706 templates/js/translated/part.js:1631
+#: templates/js/translated/stock.js:2485
msgid "Name"
msgstr "Namn"
-#: InvenTree/models.py:284 build/models.py:207
+#: InvenTree/models.py:284 build/models.py:209
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:73 label/models.py:119
-#: order/models.py:122 part/models.py:795 part/templates/part/category.html:74
+#: order/models.py:125 part/models.py:797 part/templates/part/category.html:74
#: part/templates/part/part_base.html:163
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:93
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:327 templates/js/translated/bom.js:540
+#: templates/js/translated/bom.js:339 templates/js/translated/bom.js:552
#: templates/js/translated/build.js:1682 templates/js/translated/company.js:345
#: templates/js/translated/company.js:551
#: templates/js/translated/company.js:840 templates/js/translated/order.js:836
#: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258
-#: templates/js/translated/part.js:620 templates/js/translated/part.js:992
-#: templates/js/translated/part.js:1077 templates/js/translated/part.js:1247
-#: templates/js/translated/part.js:1643 templates/js/translated/part.js:1712
-#: templates/js/translated/stock.js:1569 templates/js/translated/stock.js:2339
-#: templates/js/translated/stock.js:2384
+#: templates/js/translated/part.js:626 templates/js/translated/part.js:999
+#: templates/js/translated/part.js:1084 templates/js/translated/part.js:1254
+#: templates/js/translated/part.js:1650 templates/js/translated/part.js:1719
+#: templates/js/translated/stock.js:1577 templates/js/translated/stock.js:2314
+#: templates/js/translated/stock.js:2497 templates/js/translated/stock.js:2542
msgid "Description"
msgstr "Beskrivning"
@@ -244,7 +245,7 @@ msgstr "Beskrivning (valfritt)"
msgid "parent"
msgstr "överordnad"
-#: InvenTree/serializers.py:65 part/models.py:2727
+#: InvenTree/serializers.py:65 part/models.py:2734
msgid "Must be a valid number"
msgstr "Måste vara ett giltigt nummer"
@@ -252,83 +253,83 @@ msgstr "Måste vara ett giltigt nummer"
msgid "Filename"
msgstr "Filnamn"
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:661
msgid "German"
msgstr "Tyska"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:662
msgid "Greek"
msgstr "Grekiska"
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:663
msgid "English"
msgstr "Engelska"
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:664
msgid "Spanish"
msgstr "Spanska"
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:665
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:666
msgid "French"
msgstr "Franska"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:667
msgid "Hebrew"
msgstr "Hebreiska"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:668
msgid "Italian"
msgstr "Italienska"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:669
msgid "Japanese"
msgstr "Japanska"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:670
msgid "Korean"
msgstr "Koreanska"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:671
msgid "Dutch"
msgstr "Nederländska"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:672
msgid "Norwegian"
msgstr "Norska"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:673
msgid "Polish"
msgstr "Polska"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:674
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:675
msgid "Russian"
msgstr "Ryska"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:676
msgid "Swedish"
msgstr "Svenska"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:677
msgid "Thai"
msgstr "Thailändska"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:678
msgid "Turkish"
msgstr "Turkiska"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:679
msgid "Vietnamese"
msgstr "Vietnamesiska"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:680
msgid "Chinese"
msgstr "Kinesiska"
@@ -374,7 +375,7 @@ msgstr "Förlorad"
msgid "Returned"
msgstr "Återlämnad"
-#: InvenTree/status_codes.py:143 order/models.py:941
+#: InvenTree/status_codes.py:143 order/models.py:961
#: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255
msgid "Shipped"
msgstr "Skickad"
@@ -455,7 +456,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2064
+#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2072
msgid "Merged stock items"
msgstr ""
@@ -543,56 +544,56 @@ msgstr ""
msgid "System Information"
msgstr ""
-#: barcodes/api.py:54 barcodes/api.py:151
+#: barcodes/api.py:54 barcodes/api.py:152
msgid "Must provide barcode_data parameter"
msgstr ""
-#: barcodes/api.py:127
+#: barcodes/api.py:128
msgid "No match found for barcode data"
msgstr ""
-#: barcodes/api.py:129
+#: barcodes/api.py:130
msgid "Match found for barcode data"
msgstr ""
-#: barcodes/api.py:154
+#: barcodes/api.py:155
msgid "Must provide stockitem parameter"
msgstr ""
-#: barcodes/api.py:161
+#: barcodes/api.py:162
msgid "No matching stock item found"
msgstr ""
-#: barcodes/api.py:191
+#: barcodes/api.py:193
msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:195
+#: barcodes/api.py:197
msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:199
+#: barcodes/api.py:201
msgid "Barcode already matches Part"
msgstr ""
-#: barcodes/api.py:205 barcodes/api.py:217
+#: barcodes/api.py:207 barcodes/api.py:219
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:223
+#: barcodes/api.py:225
msgid "Barcode associated with Stock Item"
msgstr ""
-#: build/forms.py:36 build/models.py:1286
+#: build/forms.py:36 build/models.py:1293
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:35 common/models.py:1253
+#: build/templates/build/detail.html:35 common/models.py:1263
#: company/forms.py:42 company/templates/company/supplier_part.html:251
-#: order/models.py:796 order/models.py:1207 order/serializers.py:810
+#: order/models.py:805 order/models.py:1229 order/serializers.py:816
#: order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:145
-#: part/forms.py:161 part/forms.py:177 part/models.py:2629
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144
+#: part/forms.py:160 part/forms.py:176 part/models.py:2636
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:962 part/templates/part/detail.html:1048
+#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -603,7 +604,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:181
#: stock/templates/stock/item_base.html:262
#: stock/templates/stock/item_base.html:270
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:555
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:567
#: templates/js/translated/build.js:295 templates/js/translated/build.js:495
#: templates/js/translated/build.js:689 templates/js/translated/build.js:699
#: templates/js/translated/build.js:1075 templates/js/translated/build.js:1422
@@ -611,11 +612,11 @@ msgstr ""
#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056
#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859
#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036
-#: templates/js/translated/order.js:2150 templates/js/translated/part.js:900
-#: templates/js/translated/part.js:1855 templates/js/translated/part.js:1978
-#: templates/js/translated/part.js:2056 templates/js/translated/stock.js:383
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:750
-#: templates/js/translated/stock.js:2519 templates/js/translated/stock.js:2621
+#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906
+#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985
+#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:391
+#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758
+#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2779
msgid "Quantity"
msgstr ""
@@ -623,9 +624,9 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:41 order/serializers.py:814 stock/forms.py:81
-#: stock/serializers.py:314 templates/js/translated/stock.js:230
-#: templates/js/translated/stock.js:384
+#: build/forms.py:41 order/serializers.py:820 stock/forms.py:81
+#: stock/serializers.py:314 templates/js/translated/stock.js:238
+#: templates/js/translated/stock.js:392
msgid "Serial Numbers"
msgstr ""
@@ -649,18 +650,18 @@ msgstr ""
msgid "Confirm build cancellation"
msgstr ""
-#: build/models.py:133
+#: build/models.py:135
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:139 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:457
+#: templates/js/translated/build.js:457 templates/js/translated/stock.js:2290
msgid "Build Order"
msgstr ""
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:140 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:92
#: order/templates/order/so_sidebar.html:13
@@ -670,40 +671,40 @@ msgstr ""
msgid "Build Orders"
msgstr ""
-#: build/models.py:198
+#: build/models.py:200
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:210 order/models.py:536
-#: order/models.py:803 part/models.py:2638
+#: build/models.py:201 order/models.py:213 order/models.py:541
+#: order/models.py:812 part/models.py:2645
#: 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/translated/bom.js:547 templates/js/translated/build.js:1179
+#: templates/js/translated/bom.js:559 templates/js/translated/build.js:1179
#: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144
msgid "Reference"
msgstr ""
-#: build/models.py:210
+#: build/models.py:212
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:219 build/templates/build/build_base.html:164
+#: build/models.py:221 build/templates/build/build_base.html:164
#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:222
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:225 build/templates/build/build_base.html:77
+#: build/models.py:227 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
-#: order/models.py:856 order/models.py:930
-#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
-#: part/models.py:2204 part/models.py:2220 part/models.py:2239
-#: part/models.py:2256 part/models.py:2358 part/models.py:2480
-#: part/models.py:2613 part/models.py:2920 part/serializers.py:658
+#: order/models.py:876 order/models.py:950
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359
+#: part/models.py:2211 part/models.py:2227 part/models.py:2246
+#: part/models.py:2263 part/models.py:2365 part/models.py:2487
+#: part/models.py:2620 part/models.py:2927 part/serializers.py:658
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -713,205 +714,205 @@ msgstr ""
#: templates/InvenTree/search.html:80
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
-#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:326
-#: templates/js/translated/bom.js:505 templates/js/translated/build.js:680
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:338
+#: templates/js/translated/bom.js:517 templates/js/translated/build.js:680
#: templates/js/translated/build.js:1048 templates/js/translated/build.js:1419
#: templates/js/translated/build.js:1687 templates/js/translated/company.js:492
#: templates/js/translated/company.js:749 templates/js/translated/order.js:84
#: templates/js/translated/order.js:586 templates/js/translated/order.js:1004
#: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933
-#: templates/js/translated/order.js:2128 templates/js/translated/part.js:977
-#: templates/js/translated/part.js:1058 templates/js/translated/part.js:1225
-#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:719
-#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1526
-#: templates/js/translated/stock.js:2609
+#: templates/js/translated/order.js:2128 templates/js/translated/part.js:984
+#: templates/js/translated/part.js:1065 templates/js/translated/part.js:1232
+#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727
+#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1534
+#: templates/js/translated/stock.js:2767
msgid "Part"
msgstr ""
-#: build/models.py:233
+#: build/models.py:235
msgid "Select part to build"
msgstr ""
-#: build/models.py:238
+#: build/models.py:240
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:242
+#: build/models.py:244
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 templates/js/translated/build.js:1407
+#: build/models.py:249 templates/js/translated/build.js:1407
#: templates/js/translated/order.js:1564
msgid "Source Location"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:256
+#: build/models.py:258
msgid "Destination Location"
msgstr ""
-#: build/models.py:260
+#: build/models.py:262
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:264
+#: build/models.py:266
msgid "Build Quantity"
msgstr ""
-#: build/models.py:267
+#: build/models.py:269
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:271
+#: build/models.py:273
msgid "Completed items"
msgstr ""
-#: build/models.py:273
+#: build/models.py:275
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:277 part/templates/part/part_base.html:234
+#: build/models.py:279 part/templates/part/part_base.html:234
msgid "Build Status"
msgstr ""
-#: build/models.py:281
+#: build/models.py:283
msgid "Build status code"
msgstr ""
-#: build/models.py:285 stock/models.py:531
+#: build/models.py:287 stock/models.py:533
msgid "Batch Code"
msgstr ""
-#: build/models.py:289
+#: build/models.py:291
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:126 part/models.py:967
+#: build/models.py:294 order/models.py:129 part/models.py:969
#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:558
+#: build/models.py:298 order/models.py:563
msgid "Target completion date"
msgstr ""
-#: build/models.py:297
+#: build/models.py:299
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:252
+#: build/models.py:302 order/models.py:255
#: templates/js/translated/build.js:1758
msgid "Completion Date"
msgstr ""
-#: build/models.py:306
+#: build/models.py:308
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:1729
+#: build/models.py:316 templates/js/translated/build.js:1729
msgid "Issued by"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:323 build/templates/build/build_base.html:185
-#: build/templates/build/detail.html:116 order/models.py:140
+#: build/models.py:325 build/templates/build/build_base.html:185
+#: build/templates/build/detail.html:116 order/models.py:143
#: order/templates/order/order_base.html:170
-#: order/templates/order/sales_order_base.html:182 part/models.py:971
+#: order/templates/order/sales_order_base.html:182 part/models.py:973
#: report/templates/report/inventree_build_order_base.html:159
#: templates/js/translated/build.js:1741 templates/js/translated/order.js:864
msgid "Responsible"
msgstr ""
-#: build/models.py:324
+#: build/models.py:326
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:329 build/templates/build/detail.html:102
+#: build/models.py:331 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:525
+#: part/templates/part/part_base.html:354 stock/models.py:527
#: stock/templates/stock/item_base.html:373
msgid "External Link"
msgstr ""
-#: build/models.py:334 build/serializers.py:201
+#: build/models.py:336 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
-#: order/models.py:144 order/models.py:805 order/models.py:1051
+#: order/models.py:147 order/models.py:814 order/models.py:1071
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:17 part/models.py:956
-#: part/templates/part/detail.html:120 part/templates/part/part_sidebar.html:50
+#: order/templates/order/so_sidebar.html:17 part/models.py:958
+#: part/templates/part/detail.html:137 part/templates/part/part_sidebar.html:54
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:597
-#: stock/models.py:1867 stock/models.py:1973 stock/serializers.py:332
-#: stock/serializers.py:639 stock/serializers.py:737 stock/serializers.py:869
-#: stock/templates/stock/stock_sidebar.html:21
-#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:711
+#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:599
+#: stock/models.py:1895 stock/models.py:2001 stock/serializers.py:332
+#: stock/serializers.py:640 stock/serializers.py:738 stock/serializers.py:870
+#: stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:723
#: templates/js/translated/company.js:845 templates/js/translated/order.js:1149
#: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280
-#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1795
+#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1803
msgid "Notes"
msgstr ""
-#: build/models.py:335
+#: build/models.py:337
msgid "Extra build notes"
msgstr ""
-#: build/models.py:710
+#: build/models.py:717
msgid "No build output specified"
msgstr ""
-#: build/models.py:713
+#: build/models.py:720
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:716
+#: build/models.py:723
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1108
+#: build/models.py:1115
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1117
+#: build/models.py:1124
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1127
+#: build/models.py:1134
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1133 order/models.py:1167
+#: build/models.py:1140 order/models.py:1189
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1139
+#: build/models.py:1146
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1196
+#: build/models.py:1203
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1256 stock/templates/stock/item_base.html:345
+#: build/models.py:1263 stock/templates/stock/item_base.html:345
#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1660
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1257
+#: build/models.py:1264
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1273 build/serializers.py:388 order/serializers.py:690
-#: order/serializers.py:708 stock/serializers.py:577 stock/serializers.py:695
+#: build/models.py:1280 build/serializers.py:388 order/serializers.py:696
+#: order/serializers.py:714 stock/serializers.py:578 stock/serializers.py:696
#: stock/templates/stock/item_base.html:9
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:367
@@ -920,24 +921,24 @@ msgstr ""
#: templates/js/translated/order.js:85 templates/js/translated/order.js:1577
#: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837
#: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030
-#: templates/js/translated/stock.js:555 templates/js/translated/stock.js:720
-#: templates/js/translated/stock.js:2470
+#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728
+#: templates/js/translated/stock.js:2628
msgid "Stock Item"
msgstr ""
-#: build/models.py:1274
+#: build/models.py:1281
msgid "Source stock item"
msgstr ""
-#: build/models.py:1287
+#: build/models.py:1294
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1295
+#: build/models.py:1302
msgid "Install into"
msgstr ""
-#: build/models.py:1296
+#: build/models.py:1303
msgid "Destination stock item"
msgstr ""
@@ -962,16 +963,16 @@ msgid "This build output is not fully allocated"
msgstr ""
#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294
-#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:730
-#: stock/serializers.py:971 stock/templates/stock/item_base.html:313
+#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:731
+#: stock/serializers.py:972 stock/templates/stock/item_base.html:313
#: templates/js/translated/barcode.js:384
#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:480
#: templates/js/translated/build.js:1087 templates/js/translated/order.js:508
#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955
#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044
-#: templates/js/translated/part.js:179 templates/js/translated/stock.js:556
-#: templates/js/translated/stock.js:721 templates/js/translated/stock.js:928
-#: templates/js/translated/stock.js:1676 templates/js/translated/stock.js:2411
+#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564
+#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936
+#: templates/js/translated/stock.js:1684 templates/js/translated/stock.js:2569
msgid "Location"
msgstr ""
@@ -980,12 +981,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:137
-#: build/templates/build/detail.html:63 order/models.py:552
+#: build/templates/build/detail.html:63 order/models.py:557
#: order/serializers.py:247 stock/templates/stock/item_base.html:187
#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1716
#: templates/js/translated/order.js:591 templates/js/translated/order.js:840
-#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1651
-#: templates/js/translated/stock.js:2488 templates/js/translated/stock.js:2637
+#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:2646 templates/js/translated/stock.js:2795
msgid "Status"
msgstr ""
@@ -1021,8 +1022,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:313 build/serializers.py:362 part/models.py:2753
-#: part/models.py:2912
+#: build/serializers.py:313 build/serializers.py:362 part/models.py:2760
+#: part/models.py:2919
msgid "BOM Item"
msgstr ""
@@ -1038,16 +1039,16 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:394 stock/serializers.py:584
+#: build/serializers.py:394 stock/serializers.py:585
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:408 order/models.py:277 order/serializers.py:240
-#: stock/models.py:365 stock/models.py:1077 stock/serializers.py:305
+#: build/serializers.py:408 order/models.py:280 order/serializers.py:240
+#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:450 order/serializers.py:741
+#: build/serializers.py:450 order/serializers.py:747
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1060,7 +1061,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:491 order/serializers.py:984
+#: build/serializers.py:491 order/serializers.py:990
msgid "Allocation items must be provided"
msgstr ""
@@ -1164,13 +1165,13 @@ msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:171
-#: build/templates/build/detail.html:95 order/models.py:927
-#: order/models.py:1023 order/templates/order/sales_order_base.html:9
+#: build/templates/build/detail.html:95 order/models.py:947
+#: order/models.py:1043 order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/order.js:1218
+#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2304
msgid "Sales Order"
msgstr ""
@@ -1224,7 +1225,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:50 order/models.py:878 stock/forms.py:136
+#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:136
#: templates/js/translated/order.js:592 templates/js/translated/order.js:1138
msgid "Destination"
msgstr ""
@@ -1239,7 +1240,7 @@ msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:331
-#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2644
+#: templates/js/translated/stock.js:1673 templates/js/translated/stock.js:2802
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:238
msgid "Batch"
@@ -1343,9 +1344,9 @@ msgstr ""
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:107
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:196
-#: part/templates/part/part_sidebar.html:48 stock/templates/stock/item.html:95
-#: stock/templates/stock/stock_sidebar.html:19
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:213
+#: part/templates/part/part_sidebar.html:52 stock/templates/stock/item.html:112
+#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr ""
@@ -1360,8 +1361,8 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:108
#: order/templates/order/sales_order_detail.html:127
#: order/templates/order/sales_order_detail.html:186
-#: part/templates/part/detail.html:124 stock/templates/stock/item.html:115
-#: stock/templates/stock/item.html:205
+#: part/templates/part/detail.html:141 stock/templates/stock/item.html:132
+#: stock/templates/stock/item.html:235
msgid "Edit Notes"
msgstr ""
@@ -1373,7 +1374,7 @@ msgstr ""
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:303
+#: build/templates/build/index.html:18 part/templates/part/detail.html:320
msgid "New Build Order"
msgstr ""
@@ -1453,23 +1454,23 @@ msgstr ""
msgid "Delete Build Order"
msgstr ""
-#: common/files.py:67
+#: common/files.py:65
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
-#: common/files.py:69
+#: common/files.py:67
msgid "Error reading file (invalid encoding)"
msgstr ""
-#: common/files.py:74
+#: common/files.py:72
msgid "Error reading file (invalid format)"
msgstr ""
-#: common/files.py:76
+#: common/files.py:74
msgid "Error reading file (incorrect dimension)"
msgstr ""
-#: common/files.py:78
+#: common/files.py:76
msgid "Error reading file (data could be corrupted)"
msgstr ""
@@ -1490,740 +1491,828 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:344 common/models.py:998 common/models.py:1206
-msgid "Settings key (must be unique - case insensitive"
+#: common/models.py:352
+msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:346
+#: common/models.py:354
msgid "Settings value"
msgstr ""
-#: common/models.py:380
+#: common/models.py:388
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:400
+#: common/models.py:408
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:411
+#: common/models.py:419
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:434
+#: common/models.py:442
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:553
+#: common/models.py:561
msgid "No group"
msgstr ""
-#: common/models.py:595
+#: common/models.py:603
msgid "Restart required"
msgstr ""
-#: common/models.py:596
+#: common/models.py:604
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:603
+#: common/models.py:611
msgid "InvenTree Instance Name"
msgstr ""
-#: common/models.py:605
+#: common/models.py:613
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:609
+#: common/models.py:617
msgid "Use instance name"
msgstr ""
-#: common/models.py:610
+#: common/models.py:618
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:616 company/models.py:100 company/models.py:101
+#: common/models.py:624 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr ""
-#: common/models.py:617
+#: common/models.py:625
msgid "Internal company name"
msgstr ""
-#: common/models.py:622
+#: common/models.py:630
msgid "Base URL"
msgstr ""
-#: common/models.py:623
+#: common/models.py:631
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:629
+#: common/models.py:637
msgid "Default Currency"
msgstr ""
-#: common/models.py:630
+#: common/models.py:638
msgid "Default currency"
msgstr ""
-#: common/models.py:636
+#: common/models.py:644
msgid "Download from URL"
msgstr ""
-#: common/models.py:637
+#: common/models.py:645
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:643 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:651 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
-#: common/models.py:644
+#: common/models.py:652
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:650
+#: common/models.py:658
msgid "IPN Regex"
msgstr ""
-#: common/models.py:651
+#: common/models.py:659
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:655
+#: common/models.py:663
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:656
+#: common/models.py:664
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:662
+#: common/models.py:670
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:663
+#: common/models.py:671
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:669
+#: common/models.py:677
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:670
+#: common/models.py:678
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:676
+#: common/models.py:684
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:677
+#: common/models.py:685
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:683
+#: common/models.py:691
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:684
+#: common/models.py:692
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:690
+#: common/models.py:698
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:691
+#: common/models.py:699
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:697 part/models.py:2482 report/models.py:187
+#: common/models.py:705 part/models.py:2489 report/models.py:187
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:422
msgid "Template"
msgstr ""
-#: common/models.py:698
+#: common/models.py:706
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:704 part/models.py:919 templates/js/translated/bom.js:1068
+#: common/models.py:712 part/models.py:921 templates/js/translated/bom.js:1082
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:434
msgid "Assembly"
msgstr ""
-#: common/models.py:705
+#: common/models.py:713
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:711 part/models.py:925
+#: common/models.py:719 part/models.py:927
#: templates/js/translated/table_filters.js:438
msgid "Component"
msgstr ""
-#: common/models.py:712
+#: common/models.py:720
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:718 part/models.py:936
+#: common/models.py:726 part/models.py:938
msgid "Purchaseable"
msgstr ""
-#: common/models.py:719
+#: common/models.py:727
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:725 part/models.py:941
+#: common/models.py:733 part/models.py:943
#: templates/js/translated/table_filters.js:446
msgid "Salable"
msgstr ""
-#: common/models.py:726
+#: common/models.py:734
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:732 part/models.py:931
+#: common/models.py:740 part/models.py:933
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
#: templates/js/translated/table_filters.js:450
msgid "Trackable"
msgstr ""
-#: common/models.py:733
+#: common/models.py:741
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:739 part/models.py:951
+#: common/models.py:747 part/models.py:953
#: part/templates/part/part_base.html:147
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr ""
-#: common/models.py:740
+#: common/models.py:748
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:746
+#: common/models.py:754
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:747
+#: common/models.py:755
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:753
+#: common/models.py:761
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:754
+#: common/models.py:762
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:765
+#: common/models.py:773
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:766
+#: common/models.py:774
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:772
+#: common/models.py:780
msgid "Show related parts"
msgstr ""
-#: common/models.py:773
+#: common/models.py:781
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:779
+#: common/models.py:787
msgid "Create initial stock"
msgstr ""
-#: common/models.py:780
+#: common/models.py:788
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:786
+#: common/models.py:794
msgid "Internal Prices"
msgstr ""
-#: common/models.py:787
+#: common/models.py:795
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:793
+#: common/models.py:801
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:794
+#: common/models.py:802
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:800
+#: common/models.py:808
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:801
+#: common/models.py:809
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:808
+#: common/models.py:816
msgid "Enable Reports"
msgstr ""
-#: common/models.py:809
+#: common/models.py:817
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:815 templates/stats.html:25
+#: common/models.py:823 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:816
+#: common/models.py:824
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:822
+#: common/models.py:830
msgid "Page Size"
msgstr ""
-#: common/models.py:823
+#: common/models.py:831
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:833
+#: common/models.py:841
msgid "Test Reports"
msgstr ""
-#: common/models.py:834
+#: common/models.py:842
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:840
+#: common/models.py:848
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:841
+#: common/models.py:849
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:847
+#: common/models.py:855
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:848
+#: common/models.py:856
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:854
+#: common/models.py:862
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:855
+#: common/models.py:863
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:857
+#: common/models.py:865
msgid "days"
msgstr ""
-#: common/models.py:862
+#: common/models.py:870
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:863
+#: common/models.py:871
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:869
+#: common/models.py:877
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:870
+#: common/models.py:878
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:876
-msgid "Group by Part"
-msgstr ""
-
-#: common/models.py:877
-msgid "Group stock items by part reference in table views"
-msgstr ""
-
-#: common/models.py:883
+#: common/models.py:884
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:884
+#: common/models.py:885
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:889
+#: common/models.py:890
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:890
+#: common/models.py:891
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:894
+#: common/models.py:895
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:895
+#: common/models.py:896
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:900
+#: common/models.py:901
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:901
+#: common/models.py:902
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:907
+#: common/models.py:908
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:908
+#: common/models.py:909
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:913
+#: common/models.py:914
msgid "Enable registration"
msgstr ""
-#: common/models.py:914
+#: common/models.py:915
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:919
+#: common/models.py:920
msgid "Enable SSO"
msgstr ""
-#: common/models.py:920
+#: common/models.py:921
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:925
+#: common/models.py:926
msgid "Email required"
msgstr ""
-#: common/models.py:926
+#: common/models.py:927
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:931
+#: common/models.py:932
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:932
+#: common/models.py:933
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:937
+#: common/models.py:938
msgid "Mail twice"
msgstr ""
-#: common/models.py:938
+#: common/models.py:939
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:943
+#: common/models.py:944
msgid "Password twice"
msgstr ""
-#: common/models.py:944
+#: common/models.py:945
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:949
+#: common/models.py:950
msgid "Group on signup"
msgstr ""
-#: common/models.py:950
+#: common/models.py:951
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:955
+#: common/models.py:956
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:956
+#: common/models.py:957
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:961
+#: common/models.py:964
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:962
+#: common/models.py:965
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:968
+#: common/models.py:971
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:969
+#: common/models.py:972
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:975
+#: common/models.py:978
msgid "Enable app integration"
msgstr ""
-#: common/models.py:976
+#: common/models.py:979
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:982
+#: common/models.py:985
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:983
+#: common/models.py:986
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1029
+#: common/models.py:992
+msgid "Enable event integration"
+msgstr ""
+
+#: common/models.py:993
+msgid "Enable plugins to respond to internal events"
+msgstr ""
+
+#: common/models.py:1008 common/models.py:1216
+msgid "Settings key (must be unique - case insensitive"
+msgstr ""
+
+#: common/models.py:1039
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1030
+#: common/models.py:1040
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1035
+#: common/models.py:1045
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1036
+#: common/models.py:1046
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1041
+#: common/models.py:1051
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1042
+#: common/models.py:1052
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1047
+#: common/models.py:1057
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1048
+#: common/models.py:1058
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1054
+#: common/models.py:1064
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1055
+#: common/models.py:1065
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1070
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1061
+#: common/models.py:1071
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1066
+#: common/models.py:1076
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1067
+#: common/models.py:1077
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1072
+#: common/models.py:1082
msgid "Show low stock"
msgstr ""
-#: common/models.py:1073
+#: common/models.py:1083
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1078
+#: common/models.py:1088
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1079
+#: common/models.py:1089
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1084
+#: common/models.py:1094
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1085
+#: common/models.py:1095
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1090
+#: common/models.py:1100
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1091
+#: common/models.py:1101
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1096
+#: common/models.py:1106
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1097
+#: common/models.py:1107
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1102
+#: common/models.py:1112
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1103
+#: common/models.py:1113
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1108
+#: common/models.py:1118
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1109
+#: common/models.py:1119
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1114
+#: common/models.py:1124
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1115
+#: common/models.py:1125
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1120
+#: common/models.py:1130
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1121
+#: common/models.py:1131
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1136
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1127
+#: common/models.py:1137
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1142
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1143
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1149
msgid "Inline label display"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1150
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1156
msgid "Inline report display"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1157
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1163
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1164
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1170
msgid "Search Show Stock"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1171
msgid "Display stock levels in search preview window"
msgstr ""
-#: common/models.py:1167
+#: common/models.py:1177
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1178
msgid "Hide inactive parts in search preview window"
msgstr ""
-#: common/models.py:1174
+#: common/models.py:1184
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1175
+#: common/models.py:1185
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1181
+#: common/models.py:1191
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1182
+#: common/models.py:1192
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1188
+#: common/models.py:1198
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1199
msgid "InvenTree navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1254 company/forms.py:43
+#: common/models.py:1264 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1261 company/serializers.py:264
+#: common/models.py:1271 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:909 templates/js/translated/part.js:1860
+#: templates/js/translated/part.js:915 templates/js/translated/part.js:1867
msgid "Price"
msgstr ""
-#: common/models.py:1262
+#: common/models.py:1272
msgid "Unit price at specified quantity"
msgstr ""
+#: common/models.py:1429 common/models.py:1568
+msgid "Endpoint"
+msgstr ""
+
+#: common/models.py:1430
+msgid "Endpoint at which this webhook is received"
+msgstr ""
+
+#: common/models.py:1439
+msgid "Name for this webhook"
+msgstr ""
+
+#: common/models.py:1444 part/models.py:948 plugin/models.py:46
+#: templates/js/translated/table_filters.js:34
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:295
+#: templates/js/translated/table_filters.js:417
+msgid "Active"
+msgstr ""
+
+#: common/models.py:1445
+msgid "Is this webhook active"
+msgstr ""
+
+#: common/models.py:1459
+msgid "Token"
+msgstr ""
+
+#: common/models.py:1460
+msgid "Token for access"
+msgstr ""
+
+#: common/models.py:1467
+msgid "Secret"
+msgstr ""
+
+#: common/models.py:1468
+msgid "Shared secret for HMAC"
+msgstr ""
+
+#: common/models.py:1535
+msgid "Message ID"
+msgstr ""
+
+#: common/models.py:1536
+msgid "Unique identifier for this message"
+msgstr ""
+
+#: common/models.py:1544
+msgid "Host"
+msgstr ""
+
+#: common/models.py:1545
+msgid "Host from which this message was received"
+msgstr ""
+
+#: common/models.py:1552
+msgid "Header"
+msgstr ""
+
+#: common/models.py:1553
+msgid "Header of this message"
+msgstr ""
+
+#: common/models.py:1559
+msgid "Body"
+msgstr ""
+
+#: common/models.py:1560
+msgid "Body of this message"
+msgstr ""
+
+#: common/models.py:1569
+msgid "Endpoint on which this message was received"
+msgstr ""
+
+#: common/models.py:1574
+msgid "Worked on"
+msgstr ""
+
+#: common/models.py:1575
+msgid "Was the work on this message finished?"
+msgstr ""
+
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
#: part/templates/part/bom_upload/upload_file.html:52
-#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
-#: part/views.py:764
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:213
+#: part/views.py:773
msgid "Upload File"
msgstr ""
#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
-#: part/views.py:765
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:214
+#: part/views.py:774
msgid "Match Fields"
msgstr ""
@@ -2315,7 +2404,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:838
+#: company/models.py:139 part/models.py:840
msgid "Image"
msgstr ""
@@ -2352,8 +2441,8 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:469
-#: stock/templates/stock/item_base.html:142
+#: company/models.py:320 company/models.py:535 stock/models.py:471
+#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:328
msgid "Base Part"
msgstr ""
@@ -2380,7 +2469,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:818 templates/js/translated/order.js:1038
-#: templates/js/translated/part.js:245 templates/js/translated/part.js:889
+#: templates/js/translated/part.js:245 templates/js/translated/part.js:895
msgid "MPN"
msgstr ""
@@ -2409,8 +2498,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1960 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:709 templates/js/translated/stock.js:1296
+#: stock/models.py:1988 templates/js/translated/company.js:647
+#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1304
msgid "Value"
msgstr ""
@@ -2418,10 +2507,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:913 part/models.py:2450
+#: company/models.py:429 part/models.py:915 part/models.py:2457
#: part/templates/part/part_base.html:288
-#: templates/InvenTree/settings/settings.html:284
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:715
+#: templates/InvenTree/settings/settings.html:287
+#: templates/js/translated/company.js:653 templates/js/translated/part.js:721
msgid "Units"
msgstr ""
@@ -2434,13 +2523,13 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:78
-#: company/templates/company/supplier_part.html:87 order/models.py:224
+#: company/templates/company/supplier_part.html:87 order/models.py:227
#: order/templates/order/order_base.html:112
-#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
-#: part/bom.py:247 stock/templates/stock/item_base.html:397
+#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237
+#: part/bom.py:265 stock/templates/stock/item_base.html:397
#: templates/js/translated/company.js:337
#: templates/js/translated/company.js:774 templates/js/translated/order.js:823
-#: templates/js/translated/part.js:215 templates/js/translated/part.js:857
+#: templates/js/translated/part.js:215 templates/js/translated/part.js:863
#: templates/js/translated/table_filters.js:393
msgid "Supplier"
msgstr ""
@@ -2450,8 +2539,8 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:1025
-#: templates/js/translated/part.js:226 templates/js/translated/part.js:875
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1025
+#: templates/js/translated/part.js:226 templates/js/translated/part.js:881
msgid "SKU"
msgstr ""
@@ -2472,22 +2561,22 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:119
-#: part/models.py:2641 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2648 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:580 part/models.py:1779
+#: company/models.py:580 part/models.py:1781
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1779
+#: company/models.py:580 part/models.py:1781
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:493 stock/templates/stock/item_base.html:338
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1791
+#: stock/models.py:495 stock/templates/stock/item_base.html:338
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1799
msgid "Packaging"
msgstr ""
@@ -2495,7 +2584,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1781
+#: company/models.py:584 part/models.py:1783
msgid "multiple"
msgstr ""
@@ -2554,12 +2643,12 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:83 order/models.py:547
-#: order/templates/order/sales_order_base.html:115 stock/models.py:512
-#: stock/models.py:513 stock/serializers.py:625
+#: company/templates/company/company_base.html:83 order/models.py:552
+#: order/templates/order/sales_order_base.html:115 stock/models.py:514
+#: stock/models.py:515 stock/serializers.py:626
#: stock/templates/stock/item_base.html:290
#: templates/js/translated/company.js:329 templates/js/translated/order.js:1240
-#: templates/js/translated/stock.js:2452
+#: templates/js/translated/stock.js:2610
#: templates/js/translated/table_filters.js:397
msgid "Customer"
msgstr ""
@@ -2590,7 +2679,7 @@ msgstr ""
#: company/templates/company/detail.html:20
#: company/templates/company/manufacturer_part.html:118
-#: part/templates/part/detail.html:336
+#: part/templates/part/detail.html:353
msgid "New Supplier Part"
msgstr ""
@@ -2598,8 +2687,8 @@ msgstr ""
#: company/templates/company/detail.html:79
#: company/templates/company/manufacturer_part.html:127
#: company/templates/company/manufacturer_part.html:156
-#: part/templates/part/category.html:171 part/templates/part/detail.html:345
-#: part/templates/part/detail.html:374
+#: part/templates/part/category.html:171 part/templates/part/detail.html:362
+#: part/templates/part/detail.html:391
msgid "Options"
msgstr ""
@@ -2627,7 +2716,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:364
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:381
msgid "New Manufacturer Part"
msgstr ""
@@ -2641,7 +2730,7 @@ msgstr ""
#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:68 part/templates/part/part_sidebar.html:33
+#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
@@ -2663,7 +2752,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:91 part/templates/part/part_sidebar.html:37
+#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:41
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
@@ -2691,13 +2780,13 @@ msgstr ""
#: company/templates/company/detail.html:384
#: company/templates/company/manufacturer_part.html:215
-#: part/templates/part/detail.html:418
+#: part/templates/part/detail.html:435
msgid "Delete Supplier Parts?"
msgstr ""
#: company/templates/company/detail.html:385
#: company/templates/company/manufacturer_part.html:216
-#: part/templates/part/detail.html:419
+#: part/templates/part/detail.html:436
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2714,7 +2803,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:34
#: company/templates/company/supplier_part.html:159
-#: part/templates/part/detail.html:71 part/templates/part/part_base.html:76
+#: part/templates/part/detail.html:88 part/templates/part/part_base.html:76
msgid "Order part"
msgstr ""
@@ -2735,34 +2824,34 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:114
#: company/templates/company/supplier_part.html:15 company/views.py:49
-#: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163
+#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:163
#: templates/InvenTree/search.html:188 templates/navbar.html:45
msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
-#: part/templates/part/detail.html:347
+#: part/templates/part/detail.html:364
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
#: company/templates/company/manufacturer_part.html:158
#: company/templates/company/manufacturer_part.html:254
-#: part/templates/part/detail.html:347 part/templates/part/detail.html:376
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:393
#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31
-#: users/models.py:210
+#: users/models.py:212
msgid "Delete"
msgstr ""
#: company/templates/company/manufacturer_part.html:143
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:17
-#: part/templates/part/detail.html:170 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:187 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:147
-#: part/templates/part/detail.html:175
+#: part/templates/part/detail.html:192
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
@@ -2773,7 +2862,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:191
-#: part/templates/part/detail.html:862
+#: part/templates/part/detail.html:892
msgid "Add Parameter"
msgstr ""
@@ -2802,9 +2891,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:477
+#: company/templates/company/supplier_part.html:24 stock/models.py:479
#: stock/templates/stock/item_base.html:402
-#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1748
+#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1756
msgid "Supplier Part"
msgstr ""
@@ -2830,7 +2919,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:167
-#: templates/js/translated/stock.js:360
+#: templates/js/translated/stock.js:368
msgid "New Stock Item"
msgstr ""
@@ -2840,7 +2929,7 @@ msgid "Supplier Part Orders"
msgstr ""
#: company/templates/company/supplier_part.html:160
-#: part/templates/part/detail.html:72
+#: part/templates/part/detail.html:89
msgid "Order Part"
msgstr ""
@@ -2851,7 +2940,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1619
+#: part/templates/part/prices.html:271 part/views.py:1628
msgid "Add Price Break"
msgstr ""
@@ -2859,11 +2948,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1681
+#: company/templates/company/supplier_part.html:224 part/views.py:1690
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1667
+#: company/templates/company/supplier_part.html:238 part/views.py:1676
msgid "Edit Price Break"
msgstr ""
@@ -2881,10 +2970,10 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:150
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/bom.js:328 templates/js/translated/part.js:489
-#: templates/js/translated/part.js:624 templates/js/translated/part.js:1118
-#: templates/js/translated/part.js:1279 templates/js/translated/stock.js:927
-#: templates/js/translated/stock.js:1580 templates/navbar.html:28
+#: templates/js/translated/bom.js:340 templates/js/translated/part.js:495
+#: templates/js/translated/part.js:630 templates/js/translated/part.js:1125
+#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:935
+#: templates/js/translated/stock.js:1588 templates/navbar.html:28
msgid "Stock"
msgstr ""
@@ -2907,8 +2996,8 @@ msgstr ""
#: stock/templates/stock/location.html:151
#: stock/templates/stock/location.html:163
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2351
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2509
+#: templates/stats.html:105 templates/stats.html:114 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2937,20 +3026,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:584
+#: company/views.py:129 part/views.py:593
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:616
+#: company/views.py:158 part/views.py:625
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:623
+#: company/views.py:165 part/views.py:632
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:632
+#: company/views.py:174 part/views.py:641
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3036,282 +3125,282 @@ msgstr ""
msgid "Cancel order"
msgstr ""
-#: order/models.py:122
+#: order/models.py:125
msgid "Order description"
msgstr ""
-#: order/models.py:124
+#: order/models.py:127
msgid "Link to external page"
msgstr ""
-#: order/models.py:132
+#: order/models.py:135
msgid "Created By"
msgstr ""
-#: order/models.py:139
+#: order/models.py:142
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:144
+#: order/models.py:147
msgid "Order notes"
msgstr ""
-#: order/models.py:211 order/models.py:537
+#: order/models.py:214 order/models.py:542
msgid "Order reference"
msgstr ""
-#: order/models.py:216 order/models.py:552
+#: order/models.py:219 order/models.py:557
msgid "Purchase order status"
msgstr ""
-#: order/models.py:225
+#: order/models.py:228
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:228 order/templates/order/order_base.html:118
+#: order/models.py:231 order/templates/order/order_base.html:118
#: templates/js/translated/order.js:832
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:228
+#: order/models.py:231
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:235
+#: order/models.py:238
msgid "received by"
msgstr ""
-#: order/models.py:240
+#: order/models.py:243
msgid "Issue Date"
msgstr ""
-#: order/models.py:241
+#: order/models.py:244
msgid "Date order was issued"
msgstr ""
-#: order/models.py:246
+#: order/models.py:249
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:247
+#: order/models.py:250
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:253
+#: order/models.py:256
msgid "Date order was completed"
msgstr ""
-#: order/models.py:282
+#: order/models.py:285
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:411
-msgid "Quantity must be an integer"
-msgstr ""
-
-#: order/models.py:415
+#: order/models.py:420
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:548
+#: order/models.py:553
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:554
+#: order/models.py:559
msgid "Customer Reference "
msgstr ""
-#: order/models.py:554
+#: order/models.py:559
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:559
+#: order/models.py:564
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:562 order/models.py:1028
+#: order/models.py:567 order/models.py:1048
#: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429
msgid "Shipment Date"
msgstr ""
-#: order/models.py:569
+#: order/models.py:574
msgid "shipped by"
msgstr ""
-#: order/models.py:635
+#: order/models.py:640
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:639
+#: order/models.py:644
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:642
+#: order/models.py:647
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:645
+#: order/models.py:650
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:797
+#: order/models.py:806
msgid "Item quantity"
msgstr ""
-#: order/models.py:803
+#: order/models.py:812
msgid "Line item reference"
msgstr ""
-#: order/models.py:805
+#: order/models.py:814
msgid "Line item notes"
msgstr ""
-#: order/models.py:835 order/models.py:926 order/models.py:1022
-#: templates/js/translated/order.js:1820
+#: order/models.py:842
+msgid "Supplier part must match supplier"
+msgstr ""
+
+#: order/models.py:855 order/models.py:946 order/models.py:1042
+#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2271
msgid "Order"
msgstr ""
-#: order/models.py:836 order/templates/order/order_base.html:9
+#: order/models.py:856 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:352
-#: templates/js/translated/order.js:801 templates/js/translated/part.js:832
-#: templates/js/translated/stock.js:1725 templates/js/translated/stock.js:2433
+#: templates/js/translated/order.js:801 templates/js/translated/part.js:838
+#: templates/js/translated/stock.js:1733 templates/js/translated/stock.js:2591
msgid "Purchase Order"
msgstr ""
-#: order/models.py:857
+#: order/models.py:877
msgid "Supplier part"
msgstr ""
-#: order/models.py:864 order/templates/order/order_base.html:163
+#: order/models.py:884 order/templates/order/order_base.html:163
#: templates/js/translated/order.js:589 templates/js/translated/order.js:1118
-#: templates/js/translated/part.js:904 templates/js/translated/part.js:930
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:937
#: templates/js/translated/table_filters.js:317
msgid "Received"
msgstr ""
-#: order/models.py:865
+#: order/models.py:885
msgid "Number of items received"
msgstr ""
-#: order/models.py:872 part/templates/part/prices.html:176 stock/models.py:606
+#: order/models.py:892 part/templates/part/prices.html:176 stock/models.py:608
#: stock/serializers.py:170 stock/templates/stock/item_base.html:359
-#: templates/js/translated/stock.js:1779
+#: templates/js/translated/stock.js:1787
msgid "Purchase Price"
msgstr ""
-#: order/models.py:873
+#: order/models.py:893
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:881
+#: order/models.py:901
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:936 part/templates/part/part_pricing.html:112
+#: order/models.py:956 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:937
+#: order/models.py:957
msgid "Unit sale price"
msgstr ""
-#: order/models.py:942
+#: order/models.py:962
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1029
+#: order/models.py:1049
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1036
+#: order/models.py:1056
msgid "Checked By"
msgstr ""
-#: order/models.py:1037
+#: order/models.py:1057
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1045
+#: order/models.py:1065
msgid "Shipment number"
msgstr ""
-#: order/models.py:1052
+#: order/models.py:1072
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1059
+#: order/models.py:1079
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1060
+#: order/models.py:1080
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1070
+#: order/models.py:1090
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1073
+#: order/models.py:1093
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1149 order/models.py:1151
+#: order/models.py:1171 order/models.py:1173
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1155
+#: order/models.py:1177
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1157
+#: order/models.py:1179
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1160
+#: order/models.py:1182
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1164
+#: order/models.py:1186
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:1170 order/serializers.py:734
+#: order/models.py:1192 order/serializers.py:740
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1173
+#: order/models.py:1195
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1174
+#: order/models.py:1196
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1182
+#: order/models.py:1204
msgid "Line"
msgstr ""
-#: order/models.py:1190 order/serializers.py:825 order/serializers.py:953
-#: templates/js/translated/model_renderers.js:251
+#: order/models.py:1212 order/serializers.py:831 order/serializers.py:959
+#: templates/js/translated/model_renderers.js:285
msgid "Shipment"
msgstr ""
-#: order/models.py:1191
+#: order/models.py:1213
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1203
+#: order/models.py:1225
msgid "Item"
msgstr ""
-#: order/models.py:1204
+#: order/models.py:1226
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1207
+#: order/models.py:1229
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3319,7 +3408,7 @@ msgstr ""
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:211 order/serializers.py:790
+#: order/serializers.py:211 order/serializers.py:796
msgid "Line Item"
msgstr ""
@@ -3355,39 +3444,39 @@ msgstr ""
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:581
+#: order/serializers.py:587
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:649
+#: order/serializers.py:655
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:699 order/serializers.py:802
+#: order/serializers.py:705 order/serializers.py:808
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:721
+#: order/serializers.py:727
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:815
+#: order/serializers.py:821
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:839 order/serializers.py:964
+#: order/serializers.py:845 order/serializers.py:970
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:842 order/serializers.py:967
+#: order/serializers.py:848 order/serializers.py:973
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:894
+#: order/serializers.py:900
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:904
+#: order/serializers.py:910
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3441,6 +3530,7 @@ msgstr ""
#: order/templates/order/order_base.html:94
#: order/templates/order/sales_order_base.html:89
+#: templates/js/translated/stock.js:2327
msgid "Order Status"
msgstr ""
@@ -3538,7 +3628,7 @@ msgstr ""
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/build.js:300 templates/js/translated/build.js:1311
#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488
-#: templates/js/translated/stock.js:593 templates/js/translated/stock.js:761
+#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769
msgid "Remove row"
msgstr ""
@@ -3729,7 +3819,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:48
-#: templates/js/translated/bom.js:720 templates/js/translated/build.js:1243
+#: templates/js/translated/bom.js:732 templates/js/translated/build.js:1243
msgid "Actions"
msgstr ""
@@ -3832,447 +3922,448 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:125 part/models.py:81 part/models.py:847
+#: part/bom.py:125 part/models.py:83 part/models.py:849
#: part/templates/part/category.html:108 part/templates/part/part_base.html:338
msgid "Default Location"
msgstr ""
-#: part/bom.py:126 part/templates/part/part_base.html:185
+#: part/bom.py:126 templates/email/low_stock_notification.html:17
+msgid "Total Stock"
+msgstr ""
+
+#: part/bom.py:127 part/templates/part/part_base.html:185
msgid "Available Stock"
msgstr ""
-#: part/forms.py:85
+#: part/bom.py:128 part/templates/part/part_base.html:203
+#: templates/js/translated/part.js:1301
+msgid "On Order"
+msgstr ""
+
+#: part/forms.py:84
msgid "Select part category"
msgstr ""
-#: part/forms.py:122
+#: part/forms.py:121
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:126
+#: part/forms.py:125
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:146
+#: part/forms.py:145
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:82
+#: part/models.py:84
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:85
+#: part/models.py:87
msgid "Default keywords"
msgstr ""
-#: part/models.py:85
+#: part/models.py:87
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:95 part/models.py:2526 part/templates/part/category.html:15
+#: part/models.py:97 part/models.py:2533 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:96 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/stats.html:84
+#: part/models.py:98 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/stats.html:96
#: users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:358 part/templates/part/cat_link.html:3
+#: part/models.py:360 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:17 part/templates/part/category.html:133
#: part/templates/part/category.html:153
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:37
-#: templates/js/translated/part.js:1656 templates/navbar.html:21
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+#: templates/js/translated/part.js:1663 templates/navbar.html:21
+#: templates/stats.html:92 templates/stats.html:101 users/models.py:41
msgid "Parts"
msgstr ""
-#: part/models.py:450
+#: part/models.py:452
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:500 part/models.py:512
+#: part/models.py:502 part/models.py:514
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:642
+#: part/models.py:644
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:646
+#: part/models.py:648
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:651
+#: part/models.py:653
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:746
+#: part/models.py:748
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:771
+#: part/models.py:773
msgid "Part name"
msgstr ""
-#: part/models.py:778
+#: part/models.py:780
msgid "Is Template"
msgstr ""
-#: part/models.py:779
+#: part/models.py:781
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:789
+#: part/models.py:791
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:790
+#: part/models.py:792
msgid "Variant Of"
msgstr ""
-#: part/models.py:796
+#: part/models.py:798
msgid "Part description"
msgstr ""
-#: part/models.py:801 part/templates/part/category.html:86
+#: part/models.py:803 part/templates/part/category.html:86
#: part/templates/part/part_base.html:302
msgid "Keywords"
msgstr ""
-#: part/models.py:802
+#: part/models.py:804
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:809 part/models.py:2276 part/models.py:2525
+#: part/models.py:811 part/models.py:2283 part/models.py:2532
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:183
-#: templates/js/translated/part.js:1261
+#: templates/InvenTree/settings/settings.html:186
+#: templates/js/translated/part.js:1268
msgid "Category"
msgstr ""
-#: part/models.py:810
+#: part/models.py:812
msgid "Part category"
msgstr ""
-#: part/models.py:815 part/templates/part/part_base.html:274
-#: templates/js/translated/part.js:612 templates/js/translated/part.js:1214
-#: templates/js/translated/stock.js:1552
+#: part/models.py:817 part/templates/part/part_base.html:274
+#: templates/js/translated/part.js:618 templates/js/translated/part.js:1221
+#: templates/js/translated/stock.js:1560
msgid "IPN"
msgstr ""
-#: part/models.py:816
+#: part/models.py:818
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:822
+#: part/models.py:824
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:823 part/templates/part/part_base.html:281
-#: report/models.py:200 templates/js/translated/part.js:616
+#: part/models.py:825 part/templates/part/part_base.html:281
+#: report/models.py:200 templates/js/translated/part.js:622
msgid "Revision"
msgstr ""
-#: part/models.py:845
+#: part/models.py:847
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:892 part/templates/part/part_base.html:347
+#: part/models.py:894 part/templates/part/part_base.html:347
msgid "Default Supplier"
msgstr ""
-#: part/models.py:893
+#: part/models.py:895
msgid "Default supplier part"
msgstr ""
-#: part/models.py:900
+#: part/models.py:902
msgid "Default Expiry"
msgstr ""
-#: part/models.py:901
+#: part/models.py:903
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:906 part/templates/part/part_base.html:196
+#: part/models.py:908 part/templates/part/part_base.html:196
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:907
+#: part/models.py:909
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:914
+#: part/models.py:916
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:920
+#: part/models.py:922
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:926
+#: part/models.py:928
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:932
+#: part/models.py:934
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:937
+#: part/models.py:939
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:942
+#: part/models.py:944
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:946 plugin/models.py:46
-#: templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:96
-#: templates/js/translated/table_filters.js:295
-#: templates/js/translated/table_filters.js:417
-msgid "Active"
-msgstr ""
-
-#: part/models.py:947
+#: part/models.py:949
msgid "Is this part active?"
msgstr ""
-#: part/models.py:952
+#: part/models.py:954
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:957
+#: part/models.py:959
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:960
+#: part/models.py:962
msgid "BOM checksum"
msgstr ""
-#: part/models.py:960
+#: part/models.py:962
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:963
+#: part/models.py:965
msgid "BOM checked by"
msgstr ""
-#: part/models.py:965
+#: part/models.py:967
msgid "BOM checked date"
msgstr ""
-#: part/models.py:969
+#: part/models.py:971
msgid "Creation User"
msgstr ""
-#: part/models.py:1781
+#: part/models.py:1783
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2326
+#: part/models.py:2333
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2343
+#: part/models.py:2350
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2363 templates/js/translated/part.js:1707
-#: templates/js/translated/stock.js:1276
+#: part/models.py:2370 templates/js/translated/part.js:1714
+#: templates/js/translated/stock.js:1284
msgid "Test Name"
msgstr ""
-#: part/models.py:2364
+#: part/models.py:2371
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2376
msgid "Test Description"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2377
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2375 templates/js/translated/part.js:1716
+#: part/models.py:2382 templates/js/translated/part.js:1723
#: templates/js/translated/table_filters.js:281
msgid "Required"
msgstr ""
-#: part/models.py:2376
+#: part/models.py:2383
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2381 templates/js/translated/part.js:1724
+#: part/models.py:2388 templates/js/translated/part.js:1731
msgid "Requires Value"
msgstr ""
-#: part/models.py:2382
+#: part/models.py:2389
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2387 templates/js/translated/part.js:1731
+#: part/models.py:2394 templates/js/translated/part.js:1738
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2388
+#: part/models.py:2395
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2399
+#: part/models.py:2406
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2435
+#: part/models.py:2442
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2443
+#: part/models.py:2450
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2450
+#: part/models.py:2457
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2480
+#: part/models.py:2487
msgid "Parent Part"
msgstr ""
-#: part/models.py:2482 part/models.py:2531 part/models.py:2532
-#: templates/InvenTree/settings/settings.html:178
+#: part/models.py:2489 part/models.py:2538 part/models.py:2539
+#: templates/InvenTree/settings/settings.html:181
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2484
+#: part/models.py:2491
msgid "Data"
msgstr ""
-#: part/models.py:2484
+#: part/models.py:2491
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2536 templates/InvenTree/settings/settings.html:187
+#: part/models.py:2543 templates/InvenTree/settings/settings.html:190
msgid "Default Value"
msgstr ""
-#: part/models.py:2537
+#: part/models.py:2544
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2614
+#: part/models.py:2621
msgid "Select parent part"
msgstr ""
-#: part/models.py:2622
+#: part/models.py:2629
msgid "Sub part"
msgstr ""
-#: part/models.py:2623
+#: part/models.py:2630
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2629
+#: part/models.py:2636
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2631 templates/js/translated/bom.js:566
-#: templates/js/translated/bom.js:640
+#: part/models.py:2638 templates/js/translated/bom.js:578
+#: templates/js/translated/bom.js:652
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2638
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2634
+#: part/models.py:2641
msgid "Overage"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2642
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2638
+#: part/models.py:2645
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2641
+#: part/models.py:2648
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2643
+#: part/models.py:2650
msgid "Checksum"
msgstr ""
-#: part/models.py:2643
+#: part/models.py:2650
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2647 templates/js/translated/bom.js:657
+#: part/models.py:2654 templates/js/translated/bom.js:669
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2648
+#: part/models.py:2655
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2653 templates/js/translated/bom.js:649
+#: part/models.py:2660 templates/js/translated/bom.js:661
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2654
+#: part/models.py:2661
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2739 stock/models.py:355
+#: part/models.py:2746 stock/models.py:357
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2748 part/models.py:2750
+#: part/models.py:2755 part/models.py:2757
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2879
+#: part/models.py:2886
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2908
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2920
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2928
msgid "Substitute part"
msgstr ""
-#: part/models.py:2932
+#: part/models.py:2939
msgid "Part 1"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2943
msgid "Part 2"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2943
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2968
+#: part/models.py:2975
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4327,7 +4418,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:253
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:270
msgid "BOM actions"
msgstr ""
@@ -4499,7 +4590,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:348
msgid "Duplicate Part"
msgstr ""
@@ -4533,145 +4624,149 @@ msgid "Showing stock for all variants of %(full_name)s"
msgstr ""
#: part/templates/part/detail.html:43
+msgid "Part Stock Allocations"
+msgstr ""
+
+#: part/templates/part/detail.html:60
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:48
+#: part/templates/part/detail.html:65
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:105
+#: part/templates/part/detail.html:122
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:142
+#: part/templates/part/detail.html:159
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:146
+#: part/templates/part/detail.html:163
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:147
+#: part/templates/part/detail.html:164
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:174
+#: part/templates/part/detail.html:191
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:45
+#: part/templates/part/detail.html:228 part/templates/part/part_sidebar.html:49
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:215 part/templates/part/detail.html:216
+#: part/templates/part/detail.html:232 part/templates/part/detail.html:233
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:236 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:253 part/templates/part/part_sidebar.html:17
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:241
+#: part/templates/part/detail.html:258
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:245 templates/js/translated/bom.js:70
+#: part/templates/part/detail.html:262 templates/js/translated/bom.js:70
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:247
+#: part/templates/part/detail.html:264
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:257
+#: part/templates/part/detail.html:274
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:259 templates/js/translated/part.js:272
+#: part/templates/part/detail.html:276 templates/js/translated/part.js:272
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:278
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:266
+#: part/templates/part/detail.html:283
msgid "New BOM Item"
msgstr ""
-#: part/templates/part/detail.html:267
+#: part/templates/part/detail.html:284
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:280
+#: part/templates/part/detail.html:297
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:297
+#: part/templates/part/detail.html:314
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:322
+#: part/templates/part/detail.html:339
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:332
+#: part/templates/part/detail.html:349
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:360
+#: part/templates/part/detail.html:377
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:393
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:558
+#: part/templates/part/detail.html:575
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:559
+#: part/templates/part/detail.html:576
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:608
+#: part/templates/part/detail.html:625
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:652
+#: part/templates/part/detail.html:682
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:660
+#: part/templates/part/detail.html:690
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:755
+#: part/templates/part/detail.html:785
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:812
+#: part/templates/part/detail.html:842
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:925
+#: part/templates/part/detail.html:955
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:937
+#: part/templates/part/detail.html:967
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:949
+#: part/templates/part/detail.html:979
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1038
+#: part/templates/part/detail.html:1068
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4786,7 +4881,7 @@ msgstr ""
#: templates/js/translated/company.js:508
#: templates/js/translated/company.js:765
#: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:527 templates/js/translated/part.js:604
+#: templates/js/translated/part.js:533 templates/js/translated/part.js:610
msgid "Inactive"
msgstr ""
@@ -4805,10 +4900,6 @@ msgstr ""
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1294
-msgid "On Order"
-msgstr ""
-
#: part/templates/part/part_base.html:210 templates/InvenTree/index.html:178
msgid "Required for Build Orders"
msgstr ""
@@ -4821,12 +4912,12 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:678
+#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:690
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1125
-#: templates/js/translated/part.js:1298
+#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1132
+#: templates/js/translated/part.js:1305
msgid "Building"
msgstr ""
@@ -4878,7 +4969,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:632
+#: templates/js/translated/bom.js:644
msgid "No supplier pricing available"
msgstr ""
@@ -4920,7 +5011,12 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/templates/part/part_sidebar.html:41
+#: part/templates/part/part_sidebar.html:31
+#: stock/templates/stock/stock_sidebar.html:8
+msgid "Allocations"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:45
msgid "Test Templates"
msgstr ""
@@ -4993,7 +5089,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:626
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:638
msgid "Supplier Cost"
msgstr ""
@@ -5015,7 +5111,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1690
+#: part/templates/part/prices.html:215 part/views.py:1699
msgid "Add Internal Price Break"
msgstr ""
@@ -5035,9 +5131,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:588
-#: templates/js/translated/part.js:491 templates/js/translated/part.js:1115
-#: templates/js/translated/part.js:1302
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:600
+#: templates/js/translated/part.js:497 templates/js/translated/part.js:1122
+#: templates/js/translated/part.js:1309
msgid "No Stock"
msgstr ""
@@ -5054,116 +5150,116 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:116
+#: part/templatetags/inventree_extras.py:125
msgid "Unknown database"
msgstr ""
-#: part/views.py:92
+#: part/views.py:93
msgid "Set Part Category"
msgstr ""
-#: part/views.py:142
+#: part/views.py:143
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:214
+#: part/views.py:215
msgid "Match References"
msgstr ""
-#: part/views.py:502
+#: part/views.py:511
msgid "None"
msgstr ""
-#: part/views.py:561
+#: part/views.py:570
msgid "Part QR Code"
msgstr ""
-#: part/views.py:663
+#: part/views.py:672
msgid "Select Part Image"
msgstr ""
-#: part/views.py:689
+#: part/views.py:698
msgid "Updated part image"
msgstr ""
-#: part/views.py:692
+#: part/views.py:701
msgid "Part image not found"
msgstr ""
-#: part/views.py:766
+#: part/views.py:775
msgid "Match Parts"
msgstr ""
-#: part/views.py:1101
+#: part/views.py:1110
msgid "Export Bill of Materials"
msgstr ""
-#: part/views.py:1150
+#: part/views.py:1159
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1157
+#: part/views.py:1166
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1166
+#: part/views.py:1175
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1315
+#: part/views.py:1324
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1325
+#: part/views.py:1334
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1332
+#: part/views.py:1341
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1391 templates/js/translated/part.js:315
+#: part/views.py:1400 templates/js/translated/part.js:315
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1429
+#: part/views.py:1438
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1435
+#: part/views.py:1444
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1444
+#: part/views.py:1453
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1545
+#: part/views.py:1554
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1601
+#: part/views.py:1610
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1623
+#: part/views.py:1632
msgid "Added new price break"
msgstr ""
-#: part/views.py:1699
+#: part/views.py:1708
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1707
+#: part/views.py:1716
msgid "Delete Internal Price Break"
msgstr ""
-#: plugin/integration.py:124
+#: plugin/integration.py:138
msgid "No author found"
msgstr ""
-#: plugin/integration.py:136
+#: plugin/integration.py:152
msgid "No date found"
msgstr ""
@@ -5191,7 +5287,7 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:195
+#: plugin/models.py:199
msgid "Plugin"
msgstr ""
@@ -5357,12 +5453,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:517 stock/templates/stock/item_base.html:156
+#: stock/models.py:519 stock/templates/stock/item_base.html:156
#: templates/js/translated/build.js:293 templates/js/translated/build.js:697
#: templates/js/translated/build.js:1073
#: templates/js/translated/model_renderers.js:95
#: templates/js/translated/order.js:99 templates/js/translated/order.js:1945
-#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:415
+#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:423
msgid "Serial Number"
msgstr ""
@@ -5371,19 +5467,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:1948
+#: stock/models.py:1976
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:1954
+#: stock/models.py:1982
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:49
+#: templates/InvenTree/settings/plugin.html:50
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2367
+#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2525
msgid "Date"
msgstr ""
@@ -5396,23 +5492,27 @@ msgid "Fail"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:123
-#: stock/templates/stock/stock_sidebar.html:12
+#: stock/templates/stock/stock_sidebar.html:16
msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:578 templates/js/translated/stock.js:748
-#: templates/js/translated/stock.js:2627
+#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756
+#: templates/js/translated/stock.js:2785
msgid "Serial"
msgstr ""
-#: stock/api.py:478
+#: stock/api.py:476
msgid "Quantity is required"
msgstr ""
-#: stock/forms.py:77 stock/forms.py:251 stock/models.py:574
+#: stock/api.py:483
+msgid "Valid part must be supplied"
+msgstr ""
+
+#: stock/forms.py:77 stock/forms.py:251 stock/models.py:576
#: stock/templates/stock/item_base.html:193
-#: templates/js/translated/stock.js:1701
+#: templates/js/translated/stock.js:1709
msgid "Expiry Date"
msgstr ""
@@ -5460,228 +5560,228 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:60 stock/models.py:611
+#: stock/models.py:62 stock/models.py:613
#: stock/templates/stock/item_base.html:416
msgid "Owner"
msgstr ""
-#: stock/models.py:61 stock/models.py:612
+#: stock/models.py:63 stock/models.py:614
msgid "Select Owner"
msgstr ""
-#: stock/models.py:336
+#: stock/models.py:338
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:372
+#: stock/models.py:374
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:382 stock/models.py:391
+#: stock/models.py:384 stock/models.py:393
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:383
+#: stock/models.py:385
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:405
+#: stock/models.py:407
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:413
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:418
+#: stock/models.py:420
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:461
+#: stock/models.py:463
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:470
+#: stock/models.py:472
msgid "Base part"
msgstr ""
-#: stock/models.py:478
+#: stock/models.py:480
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:484 stock/templates/stock/location.html:16
+#: stock/models.py:486 stock/templates/stock/location.html:16
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:487
+#: stock/models.py:489
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:494
+#: stock/models.py:496
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:500 stock/templates/stock/item_base.html:298
+#: stock/models.py:502 stock/templates/stock/item_base.html:298
msgid "Installed In"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:505
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:521
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:535
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:537
+#: stock/models.py:539
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:546
+#: stock/models.py:548
msgid "Source Build"
msgstr ""
-#: stock/models.py:548
+#: stock/models.py:550
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:559
+#: stock/models.py:561
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:562
+#: stock/models.py:564
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:568
+#: stock/models.py:570
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:575
+#: stock/models.py:577
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:588
+#: stock/models.py:590
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:588
+#: stock/models.py:590
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:598 stock/templates/stock/item.html:111
+#: stock/models.py:600 stock/templates/stock/item.html:128
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:607
+#: stock/models.py:609
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1068
+#: stock/models.py:1096
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1074
+#: stock/models.py:1102
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1080
+#: stock/models.py:1108
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1083
+#: stock/models.py:1111
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1086
+#: stock/models.py:1114
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1093
+#: stock/models.py:1121
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1164
+#: stock/models.py:1192
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1167
+#: stock/models.py:1195
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1170
+#: stock/models.py:1198
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1173
+#: stock/models.py:1201
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1176
+#: stock/models.py:1204
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1179
+#: stock/models.py:1207
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1186 stock/serializers.py:774
+#: stock/models.py:1214 stock/serializers.py:775
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1190
+#: stock/models.py:1218
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1194
+#: stock/models.py:1222
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1198
+#: stock/models.py:1226
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1369
+#: stock/models.py:1397
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1868
+#: stock/models.py:1896
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1925
+#: stock/models.py:1953
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1931
+#: stock/models.py:1959
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1949
+#: stock/models.py:1977
msgid "Test name"
msgstr ""
-#: stock/models.py:1955 templates/js/translated/table_filters.js:271
+#: stock/models.py:1983 templates/js/translated/table_filters.js:271
msgid "Test result"
msgstr ""
-#: stock/models.py:1961
+#: stock/models.py:1989
msgid "Test output value"
msgstr ""
-#: stock/models.py:1968
+#: stock/models.py:1996
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1974
+#: stock/models.py:2002
msgid "Test notes"
msgstr ""
@@ -5706,7 +5806,7 @@ msgstr ""
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:326 stock/serializers.py:731 stock/serializers.py:972
+#: stock/serializers.py:326 stock/serializers.py:732 stock/serializers.py:973
msgid "Destination stock location"
msgstr ""
@@ -5718,63 +5818,63 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:588
+#: stock/serializers.py:589
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:592
+#: stock/serializers.py:593
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:597
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:626
+#: stock/serializers.py:627
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:632
+#: stock/serializers.py:633
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:640
+#: stock/serializers.py:641
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:650 stock/serializers.py:880
+#: stock/serializers.py:651 stock/serializers.py:881
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:738
+#: stock/serializers.py:739
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:743
+#: stock/serializers.py:744
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:744
+#: stock/serializers.py:745
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:749
+#: stock/serializers.py:750
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:750
+#: stock/serializers.py:751
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:760
+#: stock/serializers.py:761
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:842
+#: stock/serializers.py:843
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:870
+#: stock/serializers.py:871
msgid "Stock transaction notes"
msgstr ""
@@ -5787,47 +5887,51 @@ msgid "New Entry"
msgstr ""
#: stock/templates/stock/item.html:48
-msgid "Child Stock Items"
-msgstr ""
-
-#: stock/templates/stock/item.html:55
-msgid "This stock item does not have any child items"
+msgid "Stock Item Allocations"
msgstr ""
#: stock/templates/stock/item.html:64
-#: stock/templates/stock/stock_sidebar.html:8
-msgid "Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:57
-msgid "Test Report"
+msgid "Child Stock Items"
msgstr ""
#: stock/templates/stock/item.html:72
+msgid "This stock item does not have any child items"
+msgstr ""
+
+#: stock/templates/stock/item.html:81
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:57
+msgid "Test Report"
+msgstr ""
+
+#: stock/templates/stock/item.html:89
msgid "Delete Test Data"
msgstr ""
-#: stock/templates/stock/item.html:76
+#: stock/templates/stock/item.html:93
msgid "Add Test Data"
msgstr ""
-#: stock/templates/stock/item.html:133
+#: stock/templates/stock/item.html:150
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:137 stock/views.py:482
+#: stock/templates/stock/item.html:154 stock/views.py:482
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304
+#: stock/templates/stock/item.html:309 stock/templates/stock/item.html:334
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:324
+#: stock/templates/stock/item.html:354
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:338
+#: stock/templates/stock/item.html:368
msgid "Delete Test Result"
msgstr ""
@@ -5952,7 +6056,7 @@ msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:206
-#: templates/js/translated/stock.js:1714
+#: templates/js/translated/stock.js:1722
msgid "Last Updated"
msgstr ""
@@ -6111,7 +6215,7 @@ msgid "Sublocations"
msgstr ""
#: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164
-#: templates/stats.html:97 users/models.py:42
+#: templates/stats.html:109 users/models.py:42
msgid "Stock Locations"
msgstr ""
@@ -6135,7 +6239,7 @@ msgstr ""
msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/stock_sidebar.html:16
+#: stock/templates/stock/stock_sidebar.html:20
msgid "Child Items"
msgstr ""
@@ -6164,7 +6268,7 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:162
+#: stock/views.py:162 templates/js/translated/stock.js:139
msgid "Edit Stock Location"
msgstr ""
@@ -6204,7 +6308,7 @@ msgstr ""
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:727 templates/js/translated/stock.js:1066
+#: stock/views.py:727 templates/js/translated/stock.js:1074
msgid "Confirm stock adjustment"
msgstr ""
@@ -6212,7 +6316,7 @@ msgstr ""
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:324
+#: stock/views.py:760 templates/js/translated/stock.js:332
msgid "Edit Stock Item"
msgstr ""
@@ -6224,7 +6328,7 @@ msgstr ""
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1153 templates/js/translated/stock.js:304
+#: stock/views.py:1153 templates/js/translated/stock.js:312
msgid "Duplicate Stock Item"
msgstr ""
@@ -6268,6 +6372,18 @@ msgstr ""
msgid "The requested page does not exist"
msgstr ""
+#: templates/500.html:5 templates/500.html:11
+msgid "Internal Server Error"
+msgstr ""
+
+#: templates/500.html:14
+msgid "The InvenTree server raised an internal error"
+msgstr ""
+
+#: templates/500.html:15
+msgid "Refer to the error log in the admin interface for further details"
+msgstr ""
+
#: templates/503.html:10 templates/503.html:35
msgid "Site is in Maintenance"
msgstr ""
@@ -6390,7 +6506,7 @@ msgid "Signup"
msgstr ""
#: templates/InvenTree/settings/mixins/settings.html:5
-#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:118
+#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113
msgid "Settings"
msgstr ""
@@ -6431,43 +6547,43 @@ msgstr ""
msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage."
msgstr ""
-#: templates/InvenTree/settings/plugin.html:32
+#: templates/InvenTree/settings/plugin.html:33
msgid "Plugins"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:37
+#: templates/InvenTree/settings/plugin.html:38
#: templates/js/translated/plugin.js:15
msgid "Install Plugin"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:46 templates/navbar.html:111
+#: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111
#: users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin.html:49
#: templates/InvenTree/settings/plugin_settings.html:28
msgid "Author"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:50
+#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin_settings.html:43
msgid "Version"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:91
+#: templates/InvenTree/settings/plugin.html:92
msgid "Inactive plugins"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:114
+#: templates/InvenTree/settings/plugin.html:115
msgid "Plugin Error Stack"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:123
+#: templates/InvenTree/settings/plugin.html:124
msgid "Stage"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:125
+#: templates/InvenTree/settings/plugin.html:126
msgid "Message"
msgstr ""
@@ -6555,37 +6671,37 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:75
+#: templates/InvenTree/settings/settings.html:78
msgid "Edit Plugin Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:77
+#: templates/InvenTree/settings/settings.html:80
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:79
+#: templates/InvenTree/settings/settings.html:82
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:168
+#: templates/InvenTree/settings/settings.html:171
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:190
-#: templates/InvenTree/settings/settings.html:289
+#: templates/InvenTree/settings/settings.html:193
+#: templates/InvenTree/settings/settings.html:292
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:191
-#: templates/InvenTree/settings/settings.html:290
+#: templates/InvenTree/settings/settings.html:194
+#: templates/InvenTree/settings/settings.html:293
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:269
+#: templates/InvenTree/settings/settings.html:272
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:273
+#: templates/InvenTree/settings/settings.html:276
msgid "ID"
msgstr ""
@@ -6763,124 +6879,105 @@ msgstr ""
msgid "Remove multifactor"
msgstr ""
-#: templates/InvenTree/settings/user.html:219
+#: templates/InvenTree/settings/user.html:220
+msgid "Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:226
+msgid "Log out active sessions (except this one)"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:227
+msgid "Log Out Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:236
+msgid "unknown on unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:237
+msgid "unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:241
+msgid "IP Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:242
+msgid "Device"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:243
+msgid "Last Activity"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:252
+#, python-format
+msgid "%(time)s ago (this session)"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:254
+#, python-format
+msgid "%(time)s ago"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:266
+msgid "Do you really want to remove the selected email address?"
+msgstr ""
+
#: templates/InvenTree/settings/user_display.html:25
msgid "Theme Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:227
#: templates/InvenTree/settings/user_display.html:35
msgid "Select theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:237
#: templates/InvenTree/settings/user_display.html:46
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:246
#: templates/InvenTree/settings/user_display.html:54
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:254
#: templates/InvenTree/settings/user_display.html:63
msgid "Select language"
msgstr ""
-#: templates/InvenTree/settings/user.html:270
#: templates/InvenTree/settings/user_display.html:79
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:272
#: templates/InvenTree/settings/user_display.html:81
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:279
#: templates/InvenTree/settings/user_display.html:88
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:281
#: templates/InvenTree/settings/user_display.html:91
msgid "Some languages are not complete"
msgstr ""
-#: templates/InvenTree/settings/user.html:283
#: templates/InvenTree/settings/user_display.html:93
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user.html:285
+#: templates/InvenTree/settings/user_display.html:95
+msgid "and hidden."
+msgstr ""
+
#: templates/InvenTree/settings/user_display.html:95
msgid "Show them too"
msgstr ""
-#: templates/InvenTree/settings/user.html:292
#: templates/InvenTree/settings/user_display.html:101
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user.html:293
-#, python-format
-msgid "Native language translation of the\n"
-" InvenTree web application is community contributed via crowdin. Contributions are\n"
-" welcomed and encouraged."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:302
-msgid "Active Sessions"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:308
-msgid "Log out active sessions (except this one)"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:309
-msgid "Log Out Active Sessions"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:318
-msgid "unknown on unknown"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:319
-msgid "unknown"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:323
-msgid "IP Address"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:324
-msgid "Device"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:325
-msgid "Last Activity"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:334
-#, python-format
-msgid "%(time)s ago (this session)"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:336
-#, python-format
-msgid "%(time)s ago"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:348
-msgid "Do you really want to remove the selected email address?"
-msgstr ""
-
-#: templates/InvenTree/settings/user_display.html:95
-msgid "and hidden."
-msgstr ""
-
#: templates/InvenTree/settings/user_display.html:102
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
@@ -6899,9 +6996,9 @@ msgid "InvenTree Version Information"
msgstr ""
#: templates/about.html:11 templates/about.html:105
-#: templates/js/translated/bom.js:395 templates/js/translated/modals.js:53
-#: templates/js/translated/modals.js:573 templates/js/translated/modals.js:667
-#: templates/js/translated/modals.js:970 templates/modals.html:15
+#: templates/js/translated/bom.js:407 templates/js/translated/modals.js:53
+#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
+#: templates/js/translated/modals.js:983 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -7178,13 +7275,13 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1103
+#: templates/js/translated/bom.js:1117
msgid "Required Quantity"
msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:579 templates/js/translated/build.js:1189
+#: templates/js/translated/bom.js:591 templates/js/translated/build.js:1189
#: templates/js/translated/build.js:1810
#: templates/js/translated/table_filters.js:178
msgid "Available"
@@ -7208,10 +7305,6 @@ msgstr ""
msgid "Click on the following link to view this part"
msgstr ""
-#: templates/email/low_stock_notification.html:17
-msgid "Total Stock"
-msgstr ""
-
#: templates/email/low_stock_notification.html:19
msgid "Minimum Quantity"
msgstr ""
@@ -7232,11 +7325,11 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1040
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1053
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1041
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1054
msgid "No response from the InvenTree server"
msgstr ""
@@ -7248,27 +7341,27 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1063
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1051
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1064
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1068
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1056
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1069
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1073
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1061
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1074
msgid "The requested resource could not be located on the server"
msgstr ""
@@ -7280,11 +7373,11 @@ msgstr ""
msgid "HTTP method not allowed at URL"
msgstr ""
-#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1065
+#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1078
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1079
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -7353,7 +7446,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:140
-#: templates/js/translated/modals.js:1030
+#: templates/js/translated/modals.js:1043
msgid "Invalid server response"
msgstr ""
@@ -7381,7 +7474,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1018
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026
msgid "Remove stock item"
msgstr ""
@@ -7428,12 +7521,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73
-#: templates/js/translated/order.js:369 templates/js/translated/stock.js:510
+#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74
-#: templates/js/translated/order.js:370 templates/js/translated/stock.js:511
+#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519
msgid "Select file format"
msgstr ""
@@ -7489,87 +7582,87 @@ msgstr ""
msgid "Remove substitute part"
msgstr ""
-#: templates/js/translated/bom.js:340
-msgid "Select and add a new variant item using the input below"
+#: templates/js/translated/bom.js:352
+msgid "Select and add a new substitute part using the input below"
msgstr ""
-#: templates/js/translated/bom.js:351
+#: templates/js/translated/bom.js:363
msgid "Are you sure you wish to remove this substitute part link?"
msgstr ""
-#: templates/js/translated/bom.js:357
+#: templates/js/translated/bom.js:369
msgid "Remove Substitute Part"
msgstr ""
-#: templates/js/translated/bom.js:396
+#: templates/js/translated/bom.js:408
msgid "Add Substitute"
msgstr ""
-#: templates/js/translated/bom.js:397
+#: templates/js/translated/bom.js:409
msgid "Edit BOM Item Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:516
+#: templates/js/translated/bom.js:528
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:520 templates/js/translated/build.js:1171
+#: templates/js/translated/bom.js:532 templates/js/translated/build.js:1171
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:525
+#: templates/js/translated/bom.js:537
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:597
+#: templates/js/translated/bom.js:609
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:612
+#: templates/js/translated/bom.js:624
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:619
+#: templates/js/translated/bom.js:631
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:668 templates/js/translated/bom.js:757
+#: templates/js/translated/bom.js:680 templates/js/translated/bom.js:769
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:728
+#: templates/js/translated/bom.js:740
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:730
+#: templates/js/translated/bom.js:742
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:732
+#: templates/js/translated/bom.js:744
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:734 templates/js/translated/bom.js:908
+#: templates/js/translated/bom.js:746 templates/js/translated/bom.js:920
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:736 templates/js/translated/bom.js:891
+#: templates/js/translated/bom.js:748 templates/js/translated/bom.js:903
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:830 templates/js/translated/build.js:915
+#: templates/js/translated/bom.js:842 templates/js/translated/build.js:915
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:886
+#: templates/js/translated/bom.js:898
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:1086 templates/js/translated/build.js:1155
+#: templates/js/translated/bom.js:1100 templates/js/translated/build.js:1155
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1108
+#: templates/js/translated/bom.js:1122
msgid "Inherited from parent BOM"
msgstr ""
@@ -7725,9 +7818,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1206
-#: templates/js/translated/part.js:1617 templates/js/translated/stock.js:1512
-#: templates/js/translated/stock.js:2321
+#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1213
+#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1520
+#: templates/js/translated/stock.js:2479
msgid "Select"
msgstr ""
@@ -7735,7 +7828,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2540
+#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2698
msgid "No user information"
msgstr ""
@@ -7808,34 +7901,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:511
-#: templates/js/translated/part.js:596
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:517
+#: templates/js/translated/part.js:602
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:515
-#: templates/js/translated/part.js:600
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:521
+#: templates/js/translated/part.js:606
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:690
+#: templates/js/translated/company.js:631 templates/js/translated/part.js:696
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:732
+#: templates/js/translated/company.js:668 templates/js/translated/part.js:738
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:733
+#: templates/js/translated/company.js:669 templates/js/translated/part.js:739
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:750
+#: templates/js/translated/company.js:688 templates/js/translated/part.js:756
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:762
+#: templates/js/translated/company.js:699 templates/js/translated/part.js:768
msgid "Delete Parameter"
msgstr ""
@@ -7844,12 +7937,12 @@ msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:420
+#: templates/js/translated/filters.js:429
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:421
+#: templates/js/translated/filters.js:430
msgid "false"
msgstr ""
@@ -7869,7 +7962,7 @@ msgstr ""
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:329
+#: templates/js/translated/filters.js:338
msgid "Create filter"
msgstr ""
@@ -7898,20 +7991,20 @@ msgstr ""
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1080 templates/modals.html:19
+#: templates/js/translated/forms.js:1082 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1471
+#: templates/js/translated/forms.js:1487
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1675
+#: templates/js/translated/forms.js:1691
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1895
+#: templates/js/translated/forms.js:1930
msgid "Clear input"
msgstr ""
@@ -7924,7 +8017,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1042
+#: templates/js/translated/stock.js:1050
msgid "Select Stock Items"
msgstr ""
@@ -7974,12 +8067,12 @@ msgid "Select Label Template"
msgstr ""
#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
-#: templates/js/translated/modals.js:599
+#: templates/js/translated/modals.js:610
msgid "Cancel"
msgstr ""
#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:666 templates/js/translated/modals.js:969
+#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:982
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
@@ -7988,47 +8081,47 @@ msgstr ""
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:381
+#: templates/js/translated/modals.js:392
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:540
+#: templates/js/translated/modals.js:551
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:598
+#: templates/js/translated/modals.js:609
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:655
+#: templates/js/translated/modals.js:666
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:921
+#: templates/js/translated/modals.js:934
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:921
+#: templates/js/translated/modals.js:934
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:946
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1030
+#: templates/js/translated/modals.js:1043
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1045
+#: templates/js/translated/modals.js:1058
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1046
+#: templates/js/translated/modals.js:1059
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1069
+#: templates/js/translated/modals.js:1082
msgid "Error requesting form data"
msgstr ""
@@ -8052,23 +8145,24 @@ msgstr ""
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:236
+#: templates/js/translated/model_renderers.js:249
+#: templates/js/translated/model_renderers.js:270
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:253
+#: templates/js/translated/model_renderers.js:287
msgid "Shipment ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:273
+#: templates/js/translated/model_renderers.js:307
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:310
+#: templates/js/translated/model_renderers.js:344
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:339
+#: templates/js/translated/model_renderers.js:373
msgid "Supplier Part ID"
msgstr ""
@@ -8116,7 +8210,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2123
+#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2131
msgid "Stock Status"
msgstr ""
@@ -8140,7 +8234,7 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:790 templates/js/translated/part.js:803
+#: templates/js/translated/order.js:790 templates/js/translated/part.js:809
msgid "No purchase orders found"
msgstr ""
@@ -8165,7 +8259,7 @@ msgid "Total"
msgstr ""
#: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163
-#: templates/js/translated/part.js:1834 templates/js/translated/part.js:2045
+#: templates/js/translated/part.js:1841 templates/js/translated/part.js:2052
msgid "Unit Price"
msgstr ""
@@ -8181,7 +8275,7 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1166 templates/js/translated/part.js:935
+#: templates/js/translated/order.js:1166 templates/js/translated/part.js:942
msgid "Receive line item"
msgstr ""
@@ -8250,7 +8344,7 @@ msgid "Delete Stock Allocation"
msgstr ""
#: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048
-#: templates/js/translated/stock.js:1428
+#: templates/js/translated/stock.js:1436
msgid "Shipped to customer"
msgstr ""
@@ -8378,144 +8472,148 @@ msgstr ""
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:412
+#: templates/js/translated/part.js:351
+msgid "Create Part Variant"
+msgstr ""
+
+#: templates/js/translated/part.js:418
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:414
+#: templates/js/translated/part.js:420
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:419
+#: templates/js/translated/part.js:425
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:421
+#: templates/js/translated/part.js:427
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:438
+#: templates/js/translated/part.js:444
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:448
+#: templates/js/translated/part.js:454
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:451
+#: templates/js/translated/part.js:457
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:475
+#: templates/js/translated/part.js:481
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:503 templates/js/translated/part.js:588
+#: templates/js/translated/part.js:509 templates/js/translated/part.js:594
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:507 templates/js/translated/part.js:592
+#: templates/js/translated/part.js:513 templates/js/translated/part.js:598
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:519
+#: templates/js/translated/part.js:525
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:529
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:638
+#: templates/js/translated/part.js:644
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1005
+#: templates/js/translated/part.js:1012
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1029
+#: templates/js/translated/part.js:1036
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1096 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:1363
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1266
+#: templates/js/translated/part.js:1273
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1289
+#: templates/js/translated/part.js:1296
#: templates/js/translated/table_filters.js:430
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1380 templates/js/translated/part.js:1552
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559
+#: templates/js/translated/stock.js:2440
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1396
+#: templates/js/translated/part.js:1403
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1571 templates/js/translated/stock.js:2301
+#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2459
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1635
+#: templates/js/translated/part.js:1642
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1649 templates/js/translated/stock.js:2345
+#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2503
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1693
+#: templates/js/translated/part.js:1700
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1744 templates/js/translated/stock.js:1234
+#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1242
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1745 templates/js/translated/stock.js:1235
+#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1243
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1751
+#: templates/js/translated/part.js:1758
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1773
+#: templates/js/translated/part.js:1780
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1787
+#: templates/js/translated/part.js:1794
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1812
+#: templates/js/translated/part.js:1819
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1867
+#: templates/js/translated/part.js:1874
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1868
+#: templates/js/translated/part.js:1875
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1969
+#: templates/js/translated/part.js:1976
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1988
+#: templates/js/translated/part.js:1995
msgid "Single Price Difference"
msgstr ""
@@ -8589,340 +8687,344 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:73
+#: templates/js/translated/stock.js:74
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:173
+#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:181
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/stock.js:93 templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:94 templates/js/translated/stock.js:183
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/stock.js:101
+#: templates/js/translated/stock.js:102
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:110
+#: templates/js/translated/stock.js:111
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:146
+#: templates/js/translated/stock.js:154
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:186
+#: templates/js/translated/stock.js:194
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:225
+#: templates/js/translated/stock.js:233
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:231
+#: templates/js/translated/stock.js:239
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:374
+#: templates/js/translated/stock.js:382
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:387
+#: templates/js/translated/stock.js:395
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:412
+#: templates/js/translated/stock.js:420
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:416 templates/js/translated/stock.js:417
+#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:433
+#: templates/js/translated/stock.js:441
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:453
+#: templates/js/translated/stock.js:461
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:462
+#: templates/js/translated/stock.js:470
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:507
+#: templates/js/translated/stock.js:515
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:518
+#: templates/js/translated/stock.js:526
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:527
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:628
+#: templates/js/translated/stock.js:636
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:629
+#: templates/js/translated/stock.js:637
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:706
+#: templates/js/translated/stock.js:714
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:707
+#: templates/js/translated/stock.js:715
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:709
+#: templates/js/translated/stock.js:717
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:710
+#: templates/js/translated/stock.js:718
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:796
+#: templates/js/translated/stock.js:804
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:797
+#: templates/js/translated/stock.js:805
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:892
+#: templates/js/translated/stock.js:900
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:893
+#: templates/js/translated/stock.js:901
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:899
+#: templates/js/translated/stock.js:907
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:900
+#: templates/js/translated/stock.js:908
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:904
+#: templates/js/translated/stock.js:912
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:905
+#: templates/js/translated/stock.js:913
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:909
+#: templates/js/translated/stock.js:917
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:910 users/models.py:206
+#: templates/js/translated/stock.js:918 users/models.py:208
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:914 templates/stock_table.html:58
+#: templates/js/translated/stock.js:922 templates/stock_table.html:58
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1003
+#: templates/js/translated/stock.js:1011
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1003
+#: templates/js/translated/stock.js:1011
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1043
+#: templates/js/translated/stock.js:1051
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1201
+#: templates/js/translated/stock.js:1209
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1211
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1208
+#: templates/js/translated/stock.js:1216
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1230
+#: templates/js/translated/stock.js:1238
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1256
+#: templates/js/translated/stock.js:1264
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1313
+#: templates/js/translated/stock.js:1321
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1420
+#: templates/js/translated/stock.js:1428
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1424
+#: templates/js/translated/stock.js:1432
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1432
+#: templates/js/translated/stock.js:1440
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1438
+#: templates/js/translated/stock.js:1446
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1596
+#: templates/js/translated/stock.js:1604
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1601
+#: templates/js/translated/stock.js:1609
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1612
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/stock.js:1616
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1610
+#: templates/js/translated/stock.js:1618
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1616
+#: templates/js/translated/stock.js:1624
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1626
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1620
+#: templates/js/translated/stock.js:1628
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1625
+#: templates/js/translated/stock.js:1633
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1632
+#: templates/js/translated/stock.js:1640
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1634
+#: templates/js/translated/stock.js:1642
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1644
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1640
+#: templates/js/translated/stock.js:1648
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1698
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1763
+#: templates/js/translated/stock.js:1771
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1801
+#: templates/js/translated/stock.js:1809
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1822 templates/js/translated/stock.js:1870
+#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:1878
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1910
+#: templates/js/translated/stock.js:1918
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1937
+#: templates/js/translated/stock.js:1945
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1939
+#: templates/js/translated/stock.js:1947
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:2138
+#: templates/js/translated/stock.js:2146
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2152
+#: templates/js/translated/stock.js:2160
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2153
+#: templates/js/translated/stock.js:2161
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2377
+#: templates/js/translated/stock.js:2340
+msgid "Allocated Quantity"
+msgstr ""
+
+#: templates/js/translated/stock.js:2535
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:2399
+#: templates/js/translated/stock.js:2557
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2424
+#: templates/js/translated/stock.js:2582
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2443
+#: templates/js/translated/stock.js:2601
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2462
+#: templates/js/translated/stock.js:2620
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2480
+#: templates/js/translated/stock.js:2638
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2503
+#: templates/js/translated/stock.js:2661
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2511
+#: templates/js/translated/stock.js:2669
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2552
+#: templates/js/translated/stock.js:2710
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2553
+#: templates/js/translated/stock.js:2711
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2604
+#: templates/js/translated/stock.js:2762
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2655
+#: templates/js/translated/stock.js:2813
msgid "Uninstall Stock Item"
msgstr ""
@@ -9194,11 +9296,11 @@ msgstr ""
msgid "Sell"
msgstr ""
-#: templates/navbar.html:113
+#: templates/navbar.html:114
msgid "Logout"
msgstr ""
-#: templates/navbar.html:115
+#: templates/navbar.html:116
msgid "Login"
msgstr ""
@@ -9246,31 +9348,43 @@ msgstr ""
msgid "Server is deployed using docker"
msgstr ""
-#: templates/stats.html:40
-msgid "Server status"
+#: templates/stats.html:39
+msgid "Plugin Support"
msgstr ""
#: templates/stats.html:43
-msgid "Healthy"
+msgid "Plugin support enabled"
msgstr ""
#: templates/stats.html:45
-msgid "Issues detected"
+msgid "Plugin support disabled"
msgstr ""
#: templates/stats.html:52
-msgid "Background Worker"
+msgid "Server status"
msgstr ""
#: templates/stats.html:55
+msgid "Healthy"
+msgstr ""
+
+#: templates/stats.html:57
+msgid "Issues detected"
+msgstr ""
+
+#: templates/stats.html:64
+msgid "Background Worker"
+msgstr ""
+
+#: templates/stats.html:67
msgid "Background worker not running"
msgstr ""
-#: templates/stats.html:63
+#: templates/stats.html:75
msgid "Email Settings"
msgstr ""
-#: templates/stats.html:66
+#: templates/stats.html:78
msgid "Email settings not configured"
msgstr ""
@@ -9366,35 +9480,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:193
+#: users/models.py:195
msgid "Permission set"
msgstr ""
-#: users/models.py:201
+#: users/models.py:203
msgid "Group"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
msgid "View"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
msgid "Permission to view items"
msgstr ""
-#: users/models.py:206
+#: users/models.py:208
msgid "Permission to add items"
msgstr ""
-#: users/models.py:208
+#: users/models.py:210
msgid "Change"
msgstr ""
-#: users/models.py:208
+#: users/models.py:210
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:210
+#: users/models.py:212
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/th/LC_MESSAGES/django.po b/InvenTree/locale/th/LC_MESSAGES/django.po
index 82cffcc5ec..b41b4a9389 100644
--- a/InvenTree/locale/th/LC_MESSAGES/django.po
+++ b/InvenTree/locale/th/LC_MESSAGES/django.po
@@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-01-10 03:54+0000\n"
-"PO-Revision-Date: 2022-01-10 03:57\n"
+"POT-Creation-Date: 2022-01-29 00:17+0000\n"
+"PO-Revision-Date: 2022-01-29 01:10\n"
"Last-Translator: \n"
"Language-Team: Thai\n"
"Language: th_TH\n"
@@ -18,15 +18,15 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 138\n"
-#: InvenTree/api.py:64
+#: InvenTree/api.py:55
msgid "API endpoint not found"
msgstr ""
-#: InvenTree/api.py:110
+#: InvenTree/api.py:101
msgid "No action specified"
msgstr ""
-#: InvenTree/api.py:124
+#: InvenTree/api.py:116
msgid "No matching action found"
msgstr ""
@@ -80,41 +80,41 @@ msgstr ""
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:437
+#: InvenTree/helpers.py:439
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:444 order/models.py:279 order/models.py:420
+#: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425
#: stock/views.py:1231
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:447
+#: InvenTree/helpers.py:449
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:469 InvenTree/helpers.py:472 InvenTree/helpers.py:475
-#: InvenTree/helpers.py:500
+#: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477
+#: InvenTree/helpers.py:502
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:510
+#: InvenTree/helpers.py:512
#, python-brace-format
msgid "Invalid group {group}"
msgstr ""
-#: InvenTree/helpers.py:516
+#: InvenTree/helpers.py:518
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:522
+#: InvenTree/helpers.py:524
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:526
+#: InvenTree/helpers.py:528
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
@@ -127,7 +127,7 @@ msgstr ""
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:132 stock/models.py:1967
+#: InvenTree/models.py:132 stock/models.py:1995
#: templates/js/translated/attachment.js:119
msgid "Attachment"
msgstr ""
@@ -137,15 +137,15 @@ msgid "Select file to attach"
msgstr ""
#: InvenTree/models.py:139 company/models.py:131 company/models.py:348
-#: company/models.py:564 order/models.py:124 part/models.py:828
+#: company/models.py:564 order/models.py:127 part/models.py:830
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1317
+#: templates/js/translated/company.js:829 templates/js/translated/part.js:1324
msgid "Link"
msgstr ""
-#: InvenTree/models.py:140 build/models.py:330 part/models.py:829
-#: stock/models.py:527
+#: InvenTree/models.py:140 build/models.py:332 part/models.py:831
+#: stock/models.py:529
msgid "Link to external URL"
msgstr ""
@@ -157,10 +157,11 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213
-#: common/models.py:1214 part/models.py:2258 part/models.py:2278
+#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1223
+#: common/models.py:1224 common/models.py:1452 common/models.py:1453
+#: part/models.py:2265 part/models.py:2285
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2534
+#: templates/js/translated/stock.js:2692
msgid "User"
msgstr ""
@@ -197,42 +198,42 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:277 InvenTree/models.py:278 company/models.py:415
-#: label/models.py:112 part/models.py:772 part/models.py:2442
-#: plugin/models.py:40 report/models.py:181
+#: InvenTree/models.py:277 InvenTree/models.py:278 common/models.py:1438
+#: company/models.py:415 label/models.py:112 part/models.py:774
+#: part/models.py:2449 plugin/models.py:40 report/models.py:181
#: templates/InvenTree/settings/mixins/urls.html:13
-#: templates/InvenTree/settings/plugin.html:47
-#: templates/InvenTree/settings/plugin.html:124
+#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin.html:125
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:279
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:561
-#: templates/js/translated/part.js:700 templates/js/translated/part.js:1624
-#: templates/js/translated/stock.js:2327
+#: templates/InvenTree/settings/settings.html:282
+#: templates/js/translated/company.js:641 templates/js/translated/part.js:567
+#: templates/js/translated/part.js:706 templates/js/translated/part.js:1631
+#: templates/js/translated/stock.js:2485
msgid "Name"
msgstr ""
-#: InvenTree/models.py:284 build/models.py:207
+#: InvenTree/models.py:284 build/models.py:209
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:73 label/models.py:119
-#: order/models.py:122 part/models.py:795 part/templates/part/category.html:74
+#: order/models.py:125 part/models.py:797 part/templates/part/category.html:74
#: part/templates/part/part_base.html:163
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:93
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:327 templates/js/translated/bom.js:540
+#: templates/js/translated/bom.js:339 templates/js/translated/bom.js:552
#: templates/js/translated/build.js:1682 templates/js/translated/company.js:345
#: templates/js/translated/company.js:551
#: templates/js/translated/company.js:840 templates/js/translated/order.js:836
#: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258
-#: templates/js/translated/part.js:620 templates/js/translated/part.js:992
-#: templates/js/translated/part.js:1077 templates/js/translated/part.js:1247
-#: templates/js/translated/part.js:1643 templates/js/translated/part.js:1712
-#: templates/js/translated/stock.js:1569 templates/js/translated/stock.js:2339
-#: templates/js/translated/stock.js:2384
+#: templates/js/translated/part.js:626 templates/js/translated/part.js:999
+#: templates/js/translated/part.js:1084 templates/js/translated/part.js:1254
+#: templates/js/translated/part.js:1650 templates/js/translated/part.js:1719
+#: templates/js/translated/stock.js:1577 templates/js/translated/stock.js:2314
+#: templates/js/translated/stock.js:2497 templates/js/translated/stock.js:2542
msgid "Description"
msgstr ""
@@ -244,7 +245,7 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:65 part/models.py:2727
+#: InvenTree/serializers.py:65 part/models.py:2734
msgid "Must be a valid number"
msgstr ""
@@ -252,83 +253,83 @@ msgstr ""
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:661
msgid "German"
msgstr ""
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:662
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:663
msgid "English"
msgstr ""
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:664
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:665
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:666
msgid "French"
msgstr ""
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:667
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:668
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:669
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:670
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:671
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:672
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:673
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:674
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:675
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:676
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:677
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:678
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:679
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:680
msgid "Chinese"
msgstr ""
@@ -374,7 +375,7 @@ msgstr ""
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:143 order/models.py:941
+#: InvenTree/status_codes.py:143 order/models.py:961
#: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255
msgid "Shipped"
msgstr ""
@@ -455,7 +456,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2064
+#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2072
msgid "Merged stock items"
msgstr ""
@@ -543,56 +544,56 @@ msgstr ""
msgid "System Information"
msgstr ""
-#: barcodes/api.py:54 barcodes/api.py:151
+#: barcodes/api.py:54 barcodes/api.py:152
msgid "Must provide barcode_data parameter"
msgstr ""
-#: barcodes/api.py:127
+#: barcodes/api.py:128
msgid "No match found for barcode data"
msgstr ""
-#: barcodes/api.py:129
+#: barcodes/api.py:130
msgid "Match found for barcode data"
msgstr ""
-#: barcodes/api.py:154
+#: barcodes/api.py:155
msgid "Must provide stockitem parameter"
msgstr ""
-#: barcodes/api.py:161
+#: barcodes/api.py:162
msgid "No matching stock item found"
msgstr ""
-#: barcodes/api.py:191
+#: barcodes/api.py:193
msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:195
+#: barcodes/api.py:197
msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:199
+#: barcodes/api.py:201
msgid "Barcode already matches Part"
msgstr ""
-#: barcodes/api.py:205 barcodes/api.py:217
+#: barcodes/api.py:207 barcodes/api.py:219
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:223
+#: barcodes/api.py:225
msgid "Barcode associated with Stock Item"
msgstr ""
-#: build/forms.py:36 build/models.py:1286
+#: build/forms.py:36 build/models.py:1293
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:35 common/models.py:1253
+#: build/templates/build/detail.html:35 common/models.py:1263
#: company/forms.py:42 company/templates/company/supplier_part.html:251
-#: order/models.py:796 order/models.py:1207 order/serializers.py:810
+#: order/models.py:805 order/models.py:1229 order/serializers.py:816
#: order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:145
-#: part/forms.py:161 part/forms.py:177 part/models.py:2629
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144
+#: part/forms.py:160 part/forms.py:176 part/models.py:2636
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:962 part/templates/part/detail.html:1048
+#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -603,7 +604,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:181
#: stock/templates/stock/item_base.html:262
#: stock/templates/stock/item_base.html:270
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:555
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:567
#: templates/js/translated/build.js:295 templates/js/translated/build.js:495
#: templates/js/translated/build.js:689 templates/js/translated/build.js:699
#: templates/js/translated/build.js:1075 templates/js/translated/build.js:1422
@@ -611,11 +612,11 @@ msgstr ""
#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056
#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859
#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036
-#: templates/js/translated/order.js:2150 templates/js/translated/part.js:900
-#: templates/js/translated/part.js:1855 templates/js/translated/part.js:1978
-#: templates/js/translated/part.js:2056 templates/js/translated/stock.js:383
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:750
-#: templates/js/translated/stock.js:2519 templates/js/translated/stock.js:2621
+#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906
+#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985
+#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:391
+#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758
+#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2779
msgid "Quantity"
msgstr ""
@@ -623,9 +624,9 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:41 order/serializers.py:814 stock/forms.py:81
-#: stock/serializers.py:314 templates/js/translated/stock.js:230
-#: templates/js/translated/stock.js:384
+#: build/forms.py:41 order/serializers.py:820 stock/forms.py:81
+#: stock/serializers.py:314 templates/js/translated/stock.js:238
+#: templates/js/translated/stock.js:392
msgid "Serial Numbers"
msgstr ""
@@ -649,18 +650,18 @@ msgstr ""
msgid "Confirm build cancellation"
msgstr ""
-#: build/models.py:133
+#: build/models.py:135
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:139 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:457
+#: templates/js/translated/build.js:457 templates/js/translated/stock.js:2290
msgid "Build Order"
msgstr ""
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:140 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:92
#: order/templates/order/so_sidebar.html:13
@@ -670,40 +671,40 @@ msgstr ""
msgid "Build Orders"
msgstr ""
-#: build/models.py:198
+#: build/models.py:200
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:210 order/models.py:536
-#: order/models.py:803 part/models.py:2638
+#: build/models.py:201 order/models.py:213 order/models.py:541
+#: order/models.py:812 part/models.py:2645
#: 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/translated/bom.js:547 templates/js/translated/build.js:1179
+#: templates/js/translated/bom.js:559 templates/js/translated/build.js:1179
#: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144
msgid "Reference"
msgstr ""
-#: build/models.py:210
+#: build/models.py:212
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:219 build/templates/build/build_base.html:164
+#: build/models.py:221 build/templates/build/build_base.html:164
#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:222
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:225 build/templates/build/build_base.html:77
+#: build/models.py:227 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
-#: order/models.py:856 order/models.py:930
-#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
-#: part/models.py:2204 part/models.py:2220 part/models.py:2239
-#: part/models.py:2256 part/models.py:2358 part/models.py:2480
-#: part/models.py:2613 part/models.py:2920 part/serializers.py:658
+#: order/models.py:876 order/models.py:950
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359
+#: part/models.py:2211 part/models.py:2227 part/models.py:2246
+#: part/models.py:2263 part/models.py:2365 part/models.py:2487
+#: part/models.py:2620 part/models.py:2927 part/serializers.py:658
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -713,205 +714,205 @@ msgstr ""
#: templates/InvenTree/search.html:80
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
-#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:326
-#: templates/js/translated/bom.js:505 templates/js/translated/build.js:680
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:338
+#: templates/js/translated/bom.js:517 templates/js/translated/build.js:680
#: templates/js/translated/build.js:1048 templates/js/translated/build.js:1419
#: templates/js/translated/build.js:1687 templates/js/translated/company.js:492
#: templates/js/translated/company.js:749 templates/js/translated/order.js:84
#: templates/js/translated/order.js:586 templates/js/translated/order.js:1004
#: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933
-#: templates/js/translated/order.js:2128 templates/js/translated/part.js:977
-#: templates/js/translated/part.js:1058 templates/js/translated/part.js:1225
-#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:719
-#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1526
-#: templates/js/translated/stock.js:2609
+#: templates/js/translated/order.js:2128 templates/js/translated/part.js:984
+#: templates/js/translated/part.js:1065 templates/js/translated/part.js:1232
+#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727
+#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1534
+#: templates/js/translated/stock.js:2767
msgid "Part"
msgstr ""
-#: build/models.py:233
+#: build/models.py:235
msgid "Select part to build"
msgstr ""
-#: build/models.py:238
+#: build/models.py:240
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:242
+#: build/models.py:244
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 templates/js/translated/build.js:1407
+#: build/models.py:249 templates/js/translated/build.js:1407
#: templates/js/translated/order.js:1564
msgid "Source Location"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:256
+#: build/models.py:258
msgid "Destination Location"
msgstr ""
-#: build/models.py:260
+#: build/models.py:262
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:264
+#: build/models.py:266
msgid "Build Quantity"
msgstr ""
-#: build/models.py:267
+#: build/models.py:269
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:271
+#: build/models.py:273
msgid "Completed items"
msgstr ""
-#: build/models.py:273
+#: build/models.py:275
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:277 part/templates/part/part_base.html:234
+#: build/models.py:279 part/templates/part/part_base.html:234
msgid "Build Status"
msgstr ""
-#: build/models.py:281
+#: build/models.py:283
msgid "Build status code"
msgstr ""
-#: build/models.py:285 stock/models.py:531
+#: build/models.py:287 stock/models.py:533
msgid "Batch Code"
msgstr ""
-#: build/models.py:289
+#: build/models.py:291
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:126 part/models.py:967
+#: build/models.py:294 order/models.py:129 part/models.py:969
#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:558
+#: build/models.py:298 order/models.py:563
msgid "Target completion date"
msgstr ""
-#: build/models.py:297
+#: build/models.py:299
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:252
+#: build/models.py:302 order/models.py:255
#: templates/js/translated/build.js:1758
msgid "Completion Date"
msgstr ""
-#: build/models.py:306
+#: build/models.py:308
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:1729
+#: build/models.py:316 templates/js/translated/build.js:1729
msgid "Issued by"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:323 build/templates/build/build_base.html:185
-#: build/templates/build/detail.html:116 order/models.py:140
+#: build/models.py:325 build/templates/build/build_base.html:185
+#: build/templates/build/detail.html:116 order/models.py:143
#: order/templates/order/order_base.html:170
-#: order/templates/order/sales_order_base.html:182 part/models.py:971
+#: order/templates/order/sales_order_base.html:182 part/models.py:973
#: report/templates/report/inventree_build_order_base.html:159
#: templates/js/translated/build.js:1741 templates/js/translated/order.js:864
msgid "Responsible"
msgstr ""
-#: build/models.py:324
+#: build/models.py:326
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:329 build/templates/build/detail.html:102
+#: build/models.py:331 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:525
+#: part/templates/part/part_base.html:354 stock/models.py:527
#: stock/templates/stock/item_base.html:373
msgid "External Link"
msgstr ""
-#: build/models.py:334 build/serializers.py:201
+#: build/models.py:336 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
-#: order/models.py:144 order/models.py:805 order/models.py:1051
+#: order/models.py:147 order/models.py:814 order/models.py:1071
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:17 part/models.py:956
-#: part/templates/part/detail.html:120 part/templates/part/part_sidebar.html:50
+#: order/templates/order/so_sidebar.html:17 part/models.py:958
+#: part/templates/part/detail.html:137 part/templates/part/part_sidebar.html:54
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:597
-#: stock/models.py:1867 stock/models.py:1973 stock/serializers.py:332
-#: stock/serializers.py:639 stock/serializers.py:737 stock/serializers.py:869
-#: stock/templates/stock/stock_sidebar.html:21
-#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:711
+#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:599
+#: stock/models.py:1895 stock/models.py:2001 stock/serializers.py:332
+#: stock/serializers.py:640 stock/serializers.py:738 stock/serializers.py:870
+#: stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:723
#: templates/js/translated/company.js:845 templates/js/translated/order.js:1149
#: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280
-#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1795
+#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1803
msgid "Notes"
msgstr ""
-#: build/models.py:335
+#: build/models.py:337
msgid "Extra build notes"
msgstr ""
-#: build/models.py:710
+#: build/models.py:717
msgid "No build output specified"
msgstr ""
-#: build/models.py:713
+#: build/models.py:720
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:716
+#: build/models.py:723
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1108
+#: build/models.py:1115
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1117
+#: build/models.py:1124
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1127
+#: build/models.py:1134
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1133 order/models.py:1167
+#: build/models.py:1140 order/models.py:1189
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1139
+#: build/models.py:1146
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1196
+#: build/models.py:1203
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1256 stock/templates/stock/item_base.html:345
+#: build/models.py:1263 stock/templates/stock/item_base.html:345
#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1660
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1257
+#: build/models.py:1264
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1273 build/serializers.py:388 order/serializers.py:690
-#: order/serializers.py:708 stock/serializers.py:577 stock/serializers.py:695
+#: build/models.py:1280 build/serializers.py:388 order/serializers.py:696
+#: order/serializers.py:714 stock/serializers.py:578 stock/serializers.py:696
#: stock/templates/stock/item_base.html:9
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:367
@@ -920,24 +921,24 @@ msgstr ""
#: templates/js/translated/order.js:85 templates/js/translated/order.js:1577
#: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837
#: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030
-#: templates/js/translated/stock.js:555 templates/js/translated/stock.js:720
-#: templates/js/translated/stock.js:2470
+#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728
+#: templates/js/translated/stock.js:2628
msgid "Stock Item"
msgstr ""
-#: build/models.py:1274
+#: build/models.py:1281
msgid "Source stock item"
msgstr ""
-#: build/models.py:1287
+#: build/models.py:1294
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1295
+#: build/models.py:1302
msgid "Install into"
msgstr ""
-#: build/models.py:1296
+#: build/models.py:1303
msgid "Destination stock item"
msgstr ""
@@ -962,16 +963,16 @@ msgid "This build output is not fully allocated"
msgstr ""
#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294
-#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:730
-#: stock/serializers.py:971 stock/templates/stock/item_base.html:313
+#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:731
+#: stock/serializers.py:972 stock/templates/stock/item_base.html:313
#: templates/js/translated/barcode.js:384
#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:480
#: templates/js/translated/build.js:1087 templates/js/translated/order.js:508
#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955
#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044
-#: templates/js/translated/part.js:179 templates/js/translated/stock.js:556
-#: templates/js/translated/stock.js:721 templates/js/translated/stock.js:928
-#: templates/js/translated/stock.js:1676 templates/js/translated/stock.js:2411
+#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564
+#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936
+#: templates/js/translated/stock.js:1684 templates/js/translated/stock.js:2569
msgid "Location"
msgstr ""
@@ -980,12 +981,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:137
-#: build/templates/build/detail.html:63 order/models.py:552
+#: build/templates/build/detail.html:63 order/models.py:557
#: order/serializers.py:247 stock/templates/stock/item_base.html:187
#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1716
#: templates/js/translated/order.js:591 templates/js/translated/order.js:840
-#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1651
-#: templates/js/translated/stock.js:2488 templates/js/translated/stock.js:2637
+#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:2646 templates/js/translated/stock.js:2795
msgid "Status"
msgstr ""
@@ -1021,8 +1022,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:313 build/serializers.py:362 part/models.py:2753
-#: part/models.py:2912
+#: build/serializers.py:313 build/serializers.py:362 part/models.py:2760
+#: part/models.py:2919
msgid "BOM Item"
msgstr ""
@@ -1038,16 +1039,16 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:394 stock/serializers.py:584
+#: build/serializers.py:394 stock/serializers.py:585
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:408 order/models.py:277 order/serializers.py:240
-#: stock/models.py:365 stock/models.py:1077 stock/serializers.py:305
+#: build/serializers.py:408 order/models.py:280 order/serializers.py:240
+#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:450 order/serializers.py:741
+#: build/serializers.py:450 order/serializers.py:747
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1060,7 +1061,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:491 order/serializers.py:984
+#: build/serializers.py:491 order/serializers.py:990
msgid "Allocation items must be provided"
msgstr ""
@@ -1164,13 +1165,13 @@ msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:171
-#: build/templates/build/detail.html:95 order/models.py:927
-#: order/models.py:1023 order/templates/order/sales_order_base.html:9
+#: build/templates/build/detail.html:95 order/models.py:947
+#: order/models.py:1043 order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/order.js:1218
+#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2304
msgid "Sales Order"
msgstr ""
@@ -1224,7 +1225,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:50 order/models.py:878 stock/forms.py:136
+#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:136
#: templates/js/translated/order.js:592 templates/js/translated/order.js:1138
msgid "Destination"
msgstr ""
@@ -1239,7 +1240,7 @@ msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:331
-#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2644
+#: templates/js/translated/stock.js:1673 templates/js/translated/stock.js:2802
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:238
msgid "Batch"
@@ -1343,9 +1344,9 @@ msgstr ""
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:107
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:196
-#: part/templates/part/part_sidebar.html:48 stock/templates/stock/item.html:95
-#: stock/templates/stock/stock_sidebar.html:19
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:213
+#: part/templates/part/part_sidebar.html:52 stock/templates/stock/item.html:112
+#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr ""
@@ -1360,8 +1361,8 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:108
#: order/templates/order/sales_order_detail.html:127
#: order/templates/order/sales_order_detail.html:186
-#: part/templates/part/detail.html:124 stock/templates/stock/item.html:115
-#: stock/templates/stock/item.html:205
+#: part/templates/part/detail.html:141 stock/templates/stock/item.html:132
+#: stock/templates/stock/item.html:235
msgid "Edit Notes"
msgstr ""
@@ -1373,7 +1374,7 @@ msgstr ""
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:303
+#: build/templates/build/index.html:18 part/templates/part/detail.html:320
msgid "New Build Order"
msgstr ""
@@ -1453,23 +1454,23 @@ msgstr ""
msgid "Delete Build Order"
msgstr ""
-#: common/files.py:67
+#: common/files.py:65
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
-#: common/files.py:69
+#: common/files.py:67
msgid "Error reading file (invalid encoding)"
msgstr ""
-#: common/files.py:74
+#: common/files.py:72
msgid "Error reading file (invalid format)"
msgstr ""
-#: common/files.py:76
+#: common/files.py:74
msgid "Error reading file (incorrect dimension)"
msgstr ""
-#: common/files.py:78
+#: common/files.py:76
msgid "Error reading file (data could be corrupted)"
msgstr ""
@@ -1490,740 +1491,828 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:344 common/models.py:998 common/models.py:1206
-msgid "Settings key (must be unique - case insensitive"
+#: common/models.py:352
+msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:346
+#: common/models.py:354
msgid "Settings value"
msgstr ""
-#: common/models.py:380
+#: common/models.py:388
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:400
+#: common/models.py:408
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:411
+#: common/models.py:419
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:434
+#: common/models.py:442
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:553
+#: common/models.py:561
msgid "No group"
msgstr ""
-#: common/models.py:595
+#: common/models.py:603
msgid "Restart required"
msgstr ""
-#: common/models.py:596
+#: common/models.py:604
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:603
+#: common/models.py:611
msgid "InvenTree Instance Name"
msgstr ""
-#: common/models.py:605
+#: common/models.py:613
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:609
+#: common/models.py:617
msgid "Use instance name"
msgstr ""
-#: common/models.py:610
+#: common/models.py:618
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:616 company/models.py:100 company/models.py:101
+#: common/models.py:624 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr ""
-#: common/models.py:617
+#: common/models.py:625
msgid "Internal company name"
msgstr ""
-#: common/models.py:622
+#: common/models.py:630
msgid "Base URL"
msgstr ""
-#: common/models.py:623
+#: common/models.py:631
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:629
+#: common/models.py:637
msgid "Default Currency"
msgstr ""
-#: common/models.py:630
+#: common/models.py:638
msgid "Default currency"
msgstr ""
-#: common/models.py:636
+#: common/models.py:644
msgid "Download from URL"
msgstr ""
-#: common/models.py:637
+#: common/models.py:645
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:643 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:651 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
-#: common/models.py:644
+#: common/models.py:652
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:650
+#: common/models.py:658
msgid "IPN Regex"
msgstr ""
-#: common/models.py:651
+#: common/models.py:659
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:655
+#: common/models.py:663
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:656
+#: common/models.py:664
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:662
+#: common/models.py:670
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:663
+#: common/models.py:671
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:669
+#: common/models.py:677
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:670
+#: common/models.py:678
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:676
+#: common/models.py:684
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:677
+#: common/models.py:685
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:683
+#: common/models.py:691
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:684
+#: common/models.py:692
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:690
+#: common/models.py:698
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:691
+#: common/models.py:699
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:697 part/models.py:2482 report/models.py:187
+#: common/models.py:705 part/models.py:2489 report/models.py:187
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:422
msgid "Template"
msgstr ""
-#: common/models.py:698
+#: common/models.py:706
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:704 part/models.py:919 templates/js/translated/bom.js:1068
+#: common/models.py:712 part/models.py:921 templates/js/translated/bom.js:1082
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:434
msgid "Assembly"
msgstr ""
-#: common/models.py:705
+#: common/models.py:713
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:711 part/models.py:925
+#: common/models.py:719 part/models.py:927
#: templates/js/translated/table_filters.js:438
msgid "Component"
msgstr ""
-#: common/models.py:712
+#: common/models.py:720
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:718 part/models.py:936
+#: common/models.py:726 part/models.py:938
msgid "Purchaseable"
msgstr ""
-#: common/models.py:719
+#: common/models.py:727
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:725 part/models.py:941
+#: common/models.py:733 part/models.py:943
#: templates/js/translated/table_filters.js:446
msgid "Salable"
msgstr ""
-#: common/models.py:726
+#: common/models.py:734
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:732 part/models.py:931
+#: common/models.py:740 part/models.py:933
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
#: templates/js/translated/table_filters.js:450
msgid "Trackable"
msgstr ""
-#: common/models.py:733
+#: common/models.py:741
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:739 part/models.py:951
+#: common/models.py:747 part/models.py:953
#: part/templates/part/part_base.html:147
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr ""
-#: common/models.py:740
+#: common/models.py:748
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:746
+#: common/models.py:754
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:747
+#: common/models.py:755
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:753
+#: common/models.py:761
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:754
+#: common/models.py:762
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:765
+#: common/models.py:773
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:766
+#: common/models.py:774
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:772
+#: common/models.py:780
msgid "Show related parts"
msgstr ""
-#: common/models.py:773
+#: common/models.py:781
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:779
+#: common/models.py:787
msgid "Create initial stock"
msgstr ""
-#: common/models.py:780
+#: common/models.py:788
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:786
+#: common/models.py:794
msgid "Internal Prices"
msgstr ""
-#: common/models.py:787
+#: common/models.py:795
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:793
+#: common/models.py:801
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:794
+#: common/models.py:802
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:800
+#: common/models.py:808
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:801
+#: common/models.py:809
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:808
+#: common/models.py:816
msgid "Enable Reports"
msgstr ""
-#: common/models.py:809
+#: common/models.py:817
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:815 templates/stats.html:25
+#: common/models.py:823 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:816
+#: common/models.py:824
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:822
+#: common/models.py:830
msgid "Page Size"
msgstr ""
-#: common/models.py:823
+#: common/models.py:831
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:833
+#: common/models.py:841
msgid "Test Reports"
msgstr ""
-#: common/models.py:834
+#: common/models.py:842
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:840
+#: common/models.py:848
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:841
+#: common/models.py:849
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:847
+#: common/models.py:855
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:848
+#: common/models.py:856
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:854
+#: common/models.py:862
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:855
+#: common/models.py:863
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:857
+#: common/models.py:865
msgid "days"
msgstr ""
-#: common/models.py:862
+#: common/models.py:870
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:863
+#: common/models.py:871
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:869
+#: common/models.py:877
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:870
+#: common/models.py:878
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:876
-msgid "Group by Part"
-msgstr ""
-
-#: common/models.py:877
-msgid "Group stock items by part reference in table views"
-msgstr ""
-
-#: common/models.py:883
+#: common/models.py:884
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:884
+#: common/models.py:885
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:889
+#: common/models.py:890
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:890
+#: common/models.py:891
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:894
+#: common/models.py:895
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:895
+#: common/models.py:896
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:900
+#: common/models.py:901
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:901
+#: common/models.py:902
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:907
+#: common/models.py:908
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:908
+#: common/models.py:909
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:913
+#: common/models.py:914
msgid "Enable registration"
msgstr ""
-#: common/models.py:914
+#: common/models.py:915
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:919
+#: common/models.py:920
msgid "Enable SSO"
msgstr ""
-#: common/models.py:920
+#: common/models.py:921
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:925
+#: common/models.py:926
msgid "Email required"
msgstr ""
-#: common/models.py:926
+#: common/models.py:927
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:931
+#: common/models.py:932
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:932
+#: common/models.py:933
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:937
+#: common/models.py:938
msgid "Mail twice"
msgstr ""
-#: common/models.py:938
+#: common/models.py:939
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:943
+#: common/models.py:944
msgid "Password twice"
msgstr ""
-#: common/models.py:944
+#: common/models.py:945
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:949
+#: common/models.py:950
msgid "Group on signup"
msgstr ""
-#: common/models.py:950
+#: common/models.py:951
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:955
+#: common/models.py:956
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:956
+#: common/models.py:957
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:961
+#: common/models.py:964
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:962
+#: common/models.py:965
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:968
+#: common/models.py:971
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:969
+#: common/models.py:972
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:975
+#: common/models.py:978
msgid "Enable app integration"
msgstr ""
-#: common/models.py:976
+#: common/models.py:979
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:982
+#: common/models.py:985
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:983
+#: common/models.py:986
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1029
+#: common/models.py:992
+msgid "Enable event integration"
+msgstr ""
+
+#: common/models.py:993
+msgid "Enable plugins to respond to internal events"
+msgstr ""
+
+#: common/models.py:1008 common/models.py:1216
+msgid "Settings key (must be unique - case insensitive"
+msgstr ""
+
+#: common/models.py:1039
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1030
+#: common/models.py:1040
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1035
+#: common/models.py:1045
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1036
+#: common/models.py:1046
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1041
+#: common/models.py:1051
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1042
+#: common/models.py:1052
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1047
+#: common/models.py:1057
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1048
+#: common/models.py:1058
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1054
+#: common/models.py:1064
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1055
+#: common/models.py:1065
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1070
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1061
+#: common/models.py:1071
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1066
+#: common/models.py:1076
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1067
+#: common/models.py:1077
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1072
+#: common/models.py:1082
msgid "Show low stock"
msgstr ""
-#: common/models.py:1073
+#: common/models.py:1083
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1078
+#: common/models.py:1088
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1079
+#: common/models.py:1089
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1084
+#: common/models.py:1094
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1085
+#: common/models.py:1095
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1090
+#: common/models.py:1100
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1091
+#: common/models.py:1101
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1096
+#: common/models.py:1106
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1097
+#: common/models.py:1107
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1102
+#: common/models.py:1112
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1103
+#: common/models.py:1113
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1108
+#: common/models.py:1118
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1109
+#: common/models.py:1119
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1114
+#: common/models.py:1124
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1115
+#: common/models.py:1125
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1120
+#: common/models.py:1130
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1121
+#: common/models.py:1131
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1136
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1127
+#: common/models.py:1137
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1142
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1143
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1149
msgid "Inline label display"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1150
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1156
msgid "Inline report display"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1157
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1163
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1164
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1170
msgid "Search Show Stock"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1171
msgid "Display stock levels in search preview window"
msgstr ""
-#: common/models.py:1167
+#: common/models.py:1177
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1178
msgid "Hide inactive parts in search preview window"
msgstr ""
-#: common/models.py:1174
+#: common/models.py:1184
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1175
+#: common/models.py:1185
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1181
+#: common/models.py:1191
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1182
+#: common/models.py:1192
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1188
+#: common/models.py:1198
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1199
msgid "InvenTree navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1254 company/forms.py:43
+#: common/models.py:1264 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1261 company/serializers.py:264
+#: common/models.py:1271 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:909 templates/js/translated/part.js:1860
+#: templates/js/translated/part.js:915 templates/js/translated/part.js:1867
msgid "Price"
msgstr ""
-#: common/models.py:1262
+#: common/models.py:1272
msgid "Unit price at specified quantity"
msgstr ""
+#: common/models.py:1429 common/models.py:1568
+msgid "Endpoint"
+msgstr ""
+
+#: common/models.py:1430
+msgid "Endpoint at which this webhook is received"
+msgstr ""
+
+#: common/models.py:1439
+msgid "Name for this webhook"
+msgstr ""
+
+#: common/models.py:1444 part/models.py:948 plugin/models.py:46
+#: templates/js/translated/table_filters.js:34
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:295
+#: templates/js/translated/table_filters.js:417
+msgid "Active"
+msgstr ""
+
+#: common/models.py:1445
+msgid "Is this webhook active"
+msgstr ""
+
+#: common/models.py:1459
+msgid "Token"
+msgstr ""
+
+#: common/models.py:1460
+msgid "Token for access"
+msgstr ""
+
+#: common/models.py:1467
+msgid "Secret"
+msgstr ""
+
+#: common/models.py:1468
+msgid "Shared secret for HMAC"
+msgstr ""
+
+#: common/models.py:1535
+msgid "Message ID"
+msgstr ""
+
+#: common/models.py:1536
+msgid "Unique identifier for this message"
+msgstr ""
+
+#: common/models.py:1544
+msgid "Host"
+msgstr ""
+
+#: common/models.py:1545
+msgid "Host from which this message was received"
+msgstr ""
+
+#: common/models.py:1552
+msgid "Header"
+msgstr ""
+
+#: common/models.py:1553
+msgid "Header of this message"
+msgstr ""
+
+#: common/models.py:1559
+msgid "Body"
+msgstr ""
+
+#: common/models.py:1560
+msgid "Body of this message"
+msgstr ""
+
+#: common/models.py:1569
+msgid "Endpoint on which this message was received"
+msgstr ""
+
+#: common/models.py:1574
+msgid "Worked on"
+msgstr ""
+
+#: common/models.py:1575
+msgid "Was the work on this message finished?"
+msgstr ""
+
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
#: part/templates/part/bom_upload/upload_file.html:52
-#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
-#: part/views.py:764
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:213
+#: part/views.py:773
msgid "Upload File"
msgstr ""
#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
-#: part/views.py:765
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:214
+#: part/views.py:774
msgid "Match Fields"
msgstr ""
@@ -2315,7 +2404,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:838
+#: company/models.py:139 part/models.py:840
msgid "Image"
msgstr ""
@@ -2352,8 +2441,8 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:469
-#: stock/templates/stock/item_base.html:142
+#: company/models.py:320 company/models.py:535 stock/models.py:471
+#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:328
msgid "Base Part"
msgstr ""
@@ -2380,7 +2469,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:818 templates/js/translated/order.js:1038
-#: templates/js/translated/part.js:245 templates/js/translated/part.js:889
+#: templates/js/translated/part.js:245 templates/js/translated/part.js:895
msgid "MPN"
msgstr ""
@@ -2409,8 +2498,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1960 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:709 templates/js/translated/stock.js:1296
+#: stock/models.py:1988 templates/js/translated/company.js:647
+#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1304
msgid "Value"
msgstr ""
@@ -2418,10 +2507,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:913 part/models.py:2450
+#: company/models.py:429 part/models.py:915 part/models.py:2457
#: part/templates/part/part_base.html:288
-#: templates/InvenTree/settings/settings.html:284
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:715
+#: templates/InvenTree/settings/settings.html:287
+#: templates/js/translated/company.js:653 templates/js/translated/part.js:721
msgid "Units"
msgstr ""
@@ -2434,13 +2523,13 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:78
-#: company/templates/company/supplier_part.html:87 order/models.py:224
+#: company/templates/company/supplier_part.html:87 order/models.py:227
#: order/templates/order/order_base.html:112
-#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
-#: part/bom.py:247 stock/templates/stock/item_base.html:397
+#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237
+#: part/bom.py:265 stock/templates/stock/item_base.html:397
#: templates/js/translated/company.js:337
#: templates/js/translated/company.js:774 templates/js/translated/order.js:823
-#: templates/js/translated/part.js:215 templates/js/translated/part.js:857
+#: templates/js/translated/part.js:215 templates/js/translated/part.js:863
#: templates/js/translated/table_filters.js:393
msgid "Supplier"
msgstr ""
@@ -2450,8 +2539,8 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:1025
-#: templates/js/translated/part.js:226 templates/js/translated/part.js:875
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1025
+#: templates/js/translated/part.js:226 templates/js/translated/part.js:881
msgid "SKU"
msgstr ""
@@ -2472,22 +2561,22 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:119
-#: part/models.py:2641 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2648 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:580 part/models.py:1779
+#: company/models.py:580 part/models.py:1781
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1779
+#: company/models.py:580 part/models.py:1781
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:493 stock/templates/stock/item_base.html:338
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1791
+#: stock/models.py:495 stock/templates/stock/item_base.html:338
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1799
msgid "Packaging"
msgstr ""
@@ -2495,7 +2584,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1781
+#: company/models.py:584 part/models.py:1783
msgid "multiple"
msgstr ""
@@ -2554,12 +2643,12 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:83 order/models.py:547
-#: order/templates/order/sales_order_base.html:115 stock/models.py:512
-#: stock/models.py:513 stock/serializers.py:625
+#: company/templates/company/company_base.html:83 order/models.py:552
+#: order/templates/order/sales_order_base.html:115 stock/models.py:514
+#: stock/models.py:515 stock/serializers.py:626
#: stock/templates/stock/item_base.html:290
#: templates/js/translated/company.js:329 templates/js/translated/order.js:1240
-#: templates/js/translated/stock.js:2452
+#: templates/js/translated/stock.js:2610
#: templates/js/translated/table_filters.js:397
msgid "Customer"
msgstr ""
@@ -2590,7 +2679,7 @@ msgstr ""
#: company/templates/company/detail.html:20
#: company/templates/company/manufacturer_part.html:118
-#: part/templates/part/detail.html:336
+#: part/templates/part/detail.html:353
msgid "New Supplier Part"
msgstr ""
@@ -2598,8 +2687,8 @@ msgstr ""
#: company/templates/company/detail.html:79
#: company/templates/company/manufacturer_part.html:127
#: company/templates/company/manufacturer_part.html:156
-#: part/templates/part/category.html:171 part/templates/part/detail.html:345
-#: part/templates/part/detail.html:374
+#: part/templates/part/category.html:171 part/templates/part/detail.html:362
+#: part/templates/part/detail.html:391
msgid "Options"
msgstr ""
@@ -2627,7 +2716,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:364
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:381
msgid "New Manufacturer Part"
msgstr ""
@@ -2641,7 +2730,7 @@ msgstr ""
#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:68 part/templates/part/part_sidebar.html:33
+#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
@@ -2663,7 +2752,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:91 part/templates/part/part_sidebar.html:37
+#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:41
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
@@ -2691,13 +2780,13 @@ msgstr ""
#: company/templates/company/detail.html:384
#: company/templates/company/manufacturer_part.html:215
-#: part/templates/part/detail.html:418
+#: part/templates/part/detail.html:435
msgid "Delete Supplier Parts?"
msgstr ""
#: company/templates/company/detail.html:385
#: company/templates/company/manufacturer_part.html:216
-#: part/templates/part/detail.html:419
+#: part/templates/part/detail.html:436
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2714,7 +2803,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:34
#: company/templates/company/supplier_part.html:159
-#: part/templates/part/detail.html:71 part/templates/part/part_base.html:76
+#: part/templates/part/detail.html:88 part/templates/part/part_base.html:76
msgid "Order part"
msgstr ""
@@ -2735,34 +2824,34 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:114
#: company/templates/company/supplier_part.html:15 company/views.py:49
-#: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163
+#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:163
#: templates/InvenTree/search.html:188 templates/navbar.html:45
msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
-#: part/templates/part/detail.html:347
+#: part/templates/part/detail.html:364
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
#: company/templates/company/manufacturer_part.html:158
#: company/templates/company/manufacturer_part.html:254
-#: part/templates/part/detail.html:347 part/templates/part/detail.html:376
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:393
#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31
-#: users/models.py:210
+#: users/models.py:212
msgid "Delete"
msgstr ""
#: company/templates/company/manufacturer_part.html:143
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:17
-#: part/templates/part/detail.html:170 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:187 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:147
-#: part/templates/part/detail.html:175
+#: part/templates/part/detail.html:192
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
@@ -2773,7 +2862,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:191
-#: part/templates/part/detail.html:862
+#: part/templates/part/detail.html:892
msgid "Add Parameter"
msgstr ""
@@ -2802,9 +2891,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:477
+#: company/templates/company/supplier_part.html:24 stock/models.py:479
#: stock/templates/stock/item_base.html:402
-#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1748
+#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1756
msgid "Supplier Part"
msgstr ""
@@ -2830,7 +2919,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:167
-#: templates/js/translated/stock.js:360
+#: templates/js/translated/stock.js:368
msgid "New Stock Item"
msgstr ""
@@ -2840,7 +2929,7 @@ msgid "Supplier Part Orders"
msgstr ""
#: company/templates/company/supplier_part.html:160
-#: part/templates/part/detail.html:72
+#: part/templates/part/detail.html:89
msgid "Order Part"
msgstr ""
@@ -2851,7 +2940,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1619
+#: part/templates/part/prices.html:271 part/views.py:1628
msgid "Add Price Break"
msgstr ""
@@ -2859,11 +2948,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1681
+#: company/templates/company/supplier_part.html:224 part/views.py:1690
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1667
+#: company/templates/company/supplier_part.html:238 part/views.py:1676
msgid "Edit Price Break"
msgstr ""
@@ -2881,10 +2970,10 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:150
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/bom.js:328 templates/js/translated/part.js:489
-#: templates/js/translated/part.js:624 templates/js/translated/part.js:1118
-#: templates/js/translated/part.js:1279 templates/js/translated/stock.js:927
-#: templates/js/translated/stock.js:1580 templates/navbar.html:28
+#: templates/js/translated/bom.js:340 templates/js/translated/part.js:495
+#: templates/js/translated/part.js:630 templates/js/translated/part.js:1125
+#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:935
+#: templates/js/translated/stock.js:1588 templates/navbar.html:28
msgid "Stock"
msgstr ""
@@ -2907,8 +2996,8 @@ msgstr ""
#: stock/templates/stock/location.html:151
#: stock/templates/stock/location.html:163
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2351
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2509
+#: templates/stats.html:105 templates/stats.html:114 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2937,20 +3026,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:584
+#: company/views.py:129 part/views.py:593
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:616
+#: company/views.py:158 part/views.py:625
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:623
+#: company/views.py:165 part/views.py:632
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:632
+#: company/views.py:174 part/views.py:641
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3036,282 +3125,282 @@ msgstr ""
msgid "Cancel order"
msgstr ""
-#: order/models.py:122
+#: order/models.py:125
msgid "Order description"
msgstr ""
-#: order/models.py:124
+#: order/models.py:127
msgid "Link to external page"
msgstr ""
-#: order/models.py:132
+#: order/models.py:135
msgid "Created By"
msgstr ""
-#: order/models.py:139
+#: order/models.py:142
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:144
+#: order/models.py:147
msgid "Order notes"
msgstr ""
-#: order/models.py:211 order/models.py:537
+#: order/models.py:214 order/models.py:542
msgid "Order reference"
msgstr ""
-#: order/models.py:216 order/models.py:552
+#: order/models.py:219 order/models.py:557
msgid "Purchase order status"
msgstr ""
-#: order/models.py:225
+#: order/models.py:228
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:228 order/templates/order/order_base.html:118
+#: order/models.py:231 order/templates/order/order_base.html:118
#: templates/js/translated/order.js:832
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:228
+#: order/models.py:231
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:235
+#: order/models.py:238
msgid "received by"
msgstr ""
-#: order/models.py:240
+#: order/models.py:243
msgid "Issue Date"
msgstr ""
-#: order/models.py:241
+#: order/models.py:244
msgid "Date order was issued"
msgstr ""
-#: order/models.py:246
+#: order/models.py:249
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:247
+#: order/models.py:250
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:253
+#: order/models.py:256
msgid "Date order was completed"
msgstr ""
-#: order/models.py:282
+#: order/models.py:285
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:411
-msgid "Quantity must be an integer"
-msgstr ""
-
-#: order/models.py:415
+#: order/models.py:420
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:548
+#: order/models.py:553
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:554
+#: order/models.py:559
msgid "Customer Reference "
msgstr ""
-#: order/models.py:554
+#: order/models.py:559
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:559
+#: order/models.py:564
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:562 order/models.py:1028
+#: order/models.py:567 order/models.py:1048
#: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429
msgid "Shipment Date"
msgstr ""
-#: order/models.py:569
+#: order/models.py:574
msgid "shipped by"
msgstr ""
-#: order/models.py:635
+#: order/models.py:640
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:639
+#: order/models.py:644
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:642
+#: order/models.py:647
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:645
+#: order/models.py:650
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:797
+#: order/models.py:806
msgid "Item quantity"
msgstr ""
-#: order/models.py:803
+#: order/models.py:812
msgid "Line item reference"
msgstr ""
-#: order/models.py:805
+#: order/models.py:814
msgid "Line item notes"
msgstr ""
-#: order/models.py:835 order/models.py:926 order/models.py:1022
-#: templates/js/translated/order.js:1820
+#: order/models.py:842
+msgid "Supplier part must match supplier"
+msgstr ""
+
+#: order/models.py:855 order/models.py:946 order/models.py:1042
+#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2271
msgid "Order"
msgstr ""
-#: order/models.py:836 order/templates/order/order_base.html:9
+#: order/models.py:856 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:352
-#: templates/js/translated/order.js:801 templates/js/translated/part.js:832
-#: templates/js/translated/stock.js:1725 templates/js/translated/stock.js:2433
+#: templates/js/translated/order.js:801 templates/js/translated/part.js:838
+#: templates/js/translated/stock.js:1733 templates/js/translated/stock.js:2591
msgid "Purchase Order"
msgstr ""
-#: order/models.py:857
+#: order/models.py:877
msgid "Supplier part"
msgstr ""
-#: order/models.py:864 order/templates/order/order_base.html:163
+#: order/models.py:884 order/templates/order/order_base.html:163
#: templates/js/translated/order.js:589 templates/js/translated/order.js:1118
-#: templates/js/translated/part.js:904 templates/js/translated/part.js:930
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:937
#: templates/js/translated/table_filters.js:317
msgid "Received"
msgstr ""
-#: order/models.py:865
+#: order/models.py:885
msgid "Number of items received"
msgstr ""
-#: order/models.py:872 part/templates/part/prices.html:176 stock/models.py:606
+#: order/models.py:892 part/templates/part/prices.html:176 stock/models.py:608
#: stock/serializers.py:170 stock/templates/stock/item_base.html:359
-#: templates/js/translated/stock.js:1779
+#: templates/js/translated/stock.js:1787
msgid "Purchase Price"
msgstr ""
-#: order/models.py:873
+#: order/models.py:893
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:881
+#: order/models.py:901
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:936 part/templates/part/part_pricing.html:112
+#: order/models.py:956 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:937
+#: order/models.py:957
msgid "Unit sale price"
msgstr ""
-#: order/models.py:942
+#: order/models.py:962
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1029
+#: order/models.py:1049
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1036
+#: order/models.py:1056
msgid "Checked By"
msgstr ""
-#: order/models.py:1037
+#: order/models.py:1057
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1045
+#: order/models.py:1065
msgid "Shipment number"
msgstr ""
-#: order/models.py:1052
+#: order/models.py:1072
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1059
+#: order/models.py:1079
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1060
+#: order/models.py:1080
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1070
+#: order/models.py:1090
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1073
+#: order/models.py:1093
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1149 order/models.py:1151
+#: order/models.py:1171 order/models.py:1173
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1155
+#: order/models.py:1177
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1157
+#: order/models.py:1179
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1160
+#: order/models.py:1182
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1164
+#: order/models.py:1186
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:1170 order/serializers.py:734
+#: order/models.py:1192 order/serializers.py:740
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1173
+#: order/models.py:1195
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1174
+#: order/models.py:1196
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1182
+#: order/models.py:1204
msgid "Line"
msgstr ""
-#: order/models.py:1190 order/serializers.py:825 order/serializers.py:953
-#: templates/js/translated/model_renderers.js:251
+#: order/models.py:1212 order/serializers.py:831 order/serializers.py:959
+#: templates/js/translated/model_renderers.js:285
msgid "Shipment"
msgstr ""
-#: order/models.py:1191
+#: order/models.py:1213
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1203
+#: order/models.py:1225
msgid "Item"
msgstr ""
-#: order/models.py:1204
+#: order/models.py:1226
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1207
+#: order/models.py:1229
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3319,7 +3408,7 @@ msgstr ""
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:211 order/serializers.py:790
+#: order/serializers.py:211 order/serializers.py:796
msgid "Line Item"
msgstr ""
@@ -3355,39 +3444,39 @@ msgstr ""
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:581
+#: order/serializers.py:587
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:649
+#: order/serializers.py:655
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:699 order/serializers.py:802
+#: order/serializers.py:705 order/serializers.py:808
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:721
+#: order/serializers.py:727
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:815
+#: order/serializers.py:821
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:839 order/serializers.py:964
+#: order/serializers.py:845 order/serializers.py:970
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:842 order/serializers.py:967
+#: order/serializers.py:848 order/serializers.py:973
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:894
+#: order/serializers.py:900
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:904
+#: order/serializers.py:910
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3441,6 +3530,7 @@ msgstr ""
#: order/templates/order/order_base.html:94
#: order/templates/order/sales_order_base.html:89
+#: templates/js/translated/stock.js:2327
msgid "Order Status"
msgstr ""
@@ -3538,7 +3628,7 @@ msgstr ""
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/build.js:300 templates/js/translated/build.js:1311
#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488
-#: templates/js/translated/stock.js:593 templates/js/translated/stock.js:761
+#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769
msgid "Remove row"
msgstr ""
@@ -3729,7 +3819,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:48
-#: templates/js/translated/bom.js:720 templates/js/translated/build.js:1243
+#: templates/js/translated/bom.js:732 templates/js/translated/build.js:1243
msgid "Actions"
msgstr ""
@@ -3832,447 +3922,448 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:125 part/models.py:81 part/models.py:847
+#: part/bom.py:125 part/models.py:83 part/models.py:849
#: part/templates/part/category.html:108 part/templates/part/part_base.html:338
msgid "Default Location"
msgstr ""
-#: part/bom.py:126 part/templates/part/part_base.html:185
+#: part/bom.py:126 templates/email/low_stock_notification.html:17
+msgid "Total Stock"
+msgstr ""
+
+#: part/bom.py:127 part/templates/part/part_base.html:185
msgid "Available Stock"
msgstr ""
-#: part/forms.py:85
+#: part/bom.py:128 part/templates/part/part_base.html:203
+#: templates/js/translated/part.js:1301
+msgid "On Order"
+msgstr ""
+
+#: part/forms.py:84
msgid "Select part category"
msgstr ""
-#: part/forms.py:122
+#: part/forms.py:121
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:126
+#: part/forms.py:125
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:146
+#: part/forms.py:145
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:82
+#: part/models.py:84
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:85
+#: part/models.py:87
msgid "Default keywords"
msgstr ""
-#: part/models.py:85
+#: part/models.py:87
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:95 part/models.py:2526 part/templates/part/category.html:15
+#: part/models.py:97 part/models.py:2533 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:96 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/stats.html:84
+#: part/models.py:98 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/stats.html:96
#: users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:358 part/templates/part/cat_link.html:3
+#: part/models.py:360 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:17 part/templates/part/category.html:133
#: part/templates/part/category.html:153
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:37
-#: templates/js/translated/part.js:1656 templates/navbar.html:21
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+#: templates/js/translated/part.js:1663 templates/navbar.html:21
+#: templates/stats.html:92 templates/stats.html:101 users/models.py:41
msgid "Parts"
msgstr ""
-#: part/models.py:450
+#: part/models.py:452
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:500 part/models.py:512
+#: part/models.py:502 part/models.py:514
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:642
+#: part/models.py:644
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:646
+#: part/models.py:648
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:651
+#: part/models.py:653
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:746
+#: part/models.py:748
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:771
+#: part/models.py:773
msgid "Part name"
msgstr ""
-#: part/models.py:778
+#: part/models.py:780
msgid "Is Template"
msgstr ""
-#: part/models.py:779
+#: part/models.py:781
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:789
+#: part/models.py:791
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:790
+#: part/models.py:792
msgid "Variant Of"
msgstr ""
-#: part/models.py:796
+#: part/models.py:798
msgid "Part description"
msgstr ""
-#: part/models.py:801 part/templates/part/category.html:86
+#: part/models.py:803 part/templates/part/category.html:86
#: part/templates/part/part_base.html:302
msgid "Keywords"
msgstr ""
-#: part/models.py:802
+#: part/models.py:804
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:809 part/models.py:2276 part/models.py:2525
+#: part/models.py:811 part/models.py:2283 part/models.py:2532
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:183
-#: templates/js/translated/part.js:1261
+#: templates/InvenTree/settings/settings.html:186
+#: templates/js/translated/part.js:1268
msgid "Category"
msgstr ""
-#: part/models.py:810
+#: part/models.py:812
msgid "Part category"
msgstr ""
-#: part/models.py:815 part/templates/part/part_base.html:274
-#: templates/js/translated/part.js:612 templates/js/translated/part.js:1214
-#: templates/js/translated/stock.js:1552
+#: part/models.py:817 part/templates/part/part_base.html:274
+#: templates/js/translated/part.js:618 templates/js/translated/part.js:1221
+#: templates/js/translated/stock.js:1560
msgid "IPN"
msgstr ""
-#: part/models.py:816
+#: part/models.py:818
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:822
+#: part/models.py:824
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:823 part/templates/part/part_base.html:281
-#: report/models.py:200 templates/js/translated/part.js:616
+#: part/models.py:825 part/templates/part/part_base.html:281
+#: report/models.py:200 templates/js/translated/part.js:622
msgid "Revision"
msgstr ""
-#: part/models.py:845
+#: part/models.py:847
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:892 part/templates/part/part_base.html:347
+#: part/models.py:894 part/templates/part/part_base.html:347
msgid "Default Supplier"
msgstr ""
-#: part/models.py:893
+#: part/models.py:895
msgid "Default supplier part"
msgstr ""
-#: part/models.py:900
+#: part/models.py:902
msgid "Default Expiry"
msgstr ""
-#: part/models.py:901
+#: part/models.py:903
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:906 part/templates/part/part_base.html:196
+#: part/models.py:908 part/templates/part/part_base.html:196
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:907
+#: part/models.py:909
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:914
+#: part/models.py:916
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:920
+#: part/models.py:922
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:926
+#: part/models.py:928
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:932
+#: part/models.py:934
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:937
+#: part/models.py:939
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:942
+#: part/models.py:944
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:946 plugin/models.py:46
-#: templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:96
-#: templates/js/translated/table_filters.js:295
-#: templates/js/translated/table_filters.js:417
-msgid "Active"
-msgstr ""
-
-#: part/models.py:947
+#: part/models.py:949
msgid "Is this part active?"
msgstr ""
-#: part/models.py:952
+#: part/models.py:954
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:957
+#: part/models.py:959
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:960
+#: part/models.py:962
msgid "BOM checksum"
msgstr ""
-#: part/models.py:960
+#: part/models.py:962
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:963
+#: part/models.py:965
msgid "BOM checked by"
msgstr ""
-#: part/models.py:965
+#: part/models.py:967
msgid "BOM checked date"
msgstr ""
-#: part/models.py:969
+#: part/models.py:971
msgid "Creation User"
msgstr ""
-#: part/models.py:1781
+#: part/models.py:1783
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2326
+#: part/models.py:2333
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2343
+#: part/models.py:2350
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2363 templates/js/translated/part.js:1707
-#: templates/js/translated/stock.js:1276
+#: part/models.py:2370 templates/js/translated/part.js:1714
+#: templates/js/translated/stock.js:1284
msgid "Test Name"
msgstr ""
-#: part/models.py:2364
+#: part/models.py:2371
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2376
msgid "Test Description"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2377
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2375 templates/js/translated/part.js:1716
+#: part/models.py:2382 templates/js/translated/part.js:1723
#: templates/js/translated/table_filters.js:281
msgid "Required"
msgstr ""
-#: part/models.py:2376
+#: part/models.py:2383
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2381 templates/js/translated/part.js:1724
+#: part/models.py:2388 templates/js/translated/part.js:1731
msgid "Requires Value"
msgstr ""
-#: part/models.py:2382
+#: part/models.py:2389
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2387 templates/js/translated/part.js:1731
+#: part/models.py:2394 templates/js/translated/part.js:1738
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2388
+#: part/models.py:2395
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2399
+#: part/models.py:2406
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2435
+#: part/models.py:2442
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2443
+#: part/models.py:2450
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2450
+#: part/models.py:2457
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2480
+#: part/models.py:2487
msgid "Parent Part"
msgstr ""
-#: part/models.py:2482 part/models.py:2531 part/models.py:2532
-#: templates/InvenTree/settings/settings.html:178
+#: part/models.py:2489 part/models.py:2538 part/models.py:2539
+#: templates/InvenTree/settings/settings.html:181
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2484
+#: part/models.py:2491
msgid "Data"
msgstr ""
-#: part/models.py:2484
+#: part/models.py:2491
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2536 templates/InvenTree/settings/settings.html:187
+#: part/models.py:2543 templates/InvenTree/settings/settings.html:190
msgid "Default Value"
msgstr ""
-#: part/models.py:2537
+#: part/models.py:2544
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2614
+#: part/models.py:2621
msgid "Select parent part"
msgstr ""
-#: part/models.py:2622
+#: part/models.py:2629
msgid "Sub part"
msgstr ""
-#: part/models.py:2623
+#: part/models.py:2630
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2629
+#: part/models.py:2636
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2631 templates/js/translated/bom.js:566
-#: templates/js/translated/bom.js:640
+#: part/models.py:2638 templates/js/translated/bom.js:578
+#: templates/js/translated/bom.js:652
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2638
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2634
+#: part/models.py:2641
msgid "Overage"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2642
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2638
+#: part/models.py:2645
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2641
+#: part/models.py:2648
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2643
+#: part/models.py:2650
msgid "Checksum"
msgstr ""
-#: part/models.py:2643
+#: part/models.py:2650
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2647 templates/js/translated/bom.js:657
+#: part/models.py:2654 templates/js/translated/bom.js:669
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2648
+#: part/models.py:2655
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2653 templates/js/translated/bom.js:649
+#: part/models.py:2660 templates/js/translated/bom.js:661
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2654
+#: part/models.py:2661
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2739 stock/models.py:355
+#: part/models.py:2746 stock/models.py:357
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2748 part/models.py:2750
+#: part/models.py:2755 part/models.py:2757
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2879
+#: part/models.py:2886
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2908
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2920
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2928
msgid "Substitute part"
msgstr ""
-#: part/models.py:2932
+#: part/models.py:2939
msgid "Part 1"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2943
msgid "Part 2"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2943
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2968
+#: part/models.py:2975
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4327,7 +4418,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:253
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:270
msgid "BOM actions"
msgstr ""
@@ -4499,7 +4590,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:348
msgid "Duplicate Part"
msgstr ""
@@ -4533,145 +4624,149 @@ msgid "Showing stock for all variants of %(full_name)s"
msgstr ""
#: part/templates/part/detail.html:43
+msgid "Part Stock Allocations"
+msgstr ""
+
+#: part/templates/part/detail.html:60
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:48
+#: part/templates/part/detail.html:65
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:105
+#: part/templates/part/detail.html:122
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:142
+#: part/templates/part/detail.html:159
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:146
+#: part/templates/part/detail.html:163
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:147
+#: part/templates/part/detail.html:164
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:174
+#: part/templates/part/detail.html:191
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:45
+#: part/templates/part/detail.html:228 part/templates/part/part_sidebar.html:49
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:215 part/templates/part/detail.html:216
+#: part/templates/part/detail.html:232 part/templates/part/detail.html:233
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:236 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:253 part/templates/part/part_sidebar.html:17
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:241
+#: part/templates/part/detail.html:258
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:245 templates/js/translated/bom.js:70
+#: part/templates/part/detail.html:262 templates/js/translated/bom.js:70
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:247
+#: part/templates/part/detail.html:264
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:257
+#: part/templates/part/detail.html:274
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:259 templates/js/translated/part.js:272
+#: part/templates/part/detail.html:276 templates/js/translated/part.js:272
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:278
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:266
+#: part/templates/part/detail.html:283
msgid "New BOM Item"
msgstr ""
-#: part/templates/part/detail.html:267
+#: part/templates/part/detail.html:284
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:280
+#: part/templates/part/detail.html:297
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:297
+#: part/templates/part/detail.html:314
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:322
+#: part/templates/part/detail.html:339
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:332
+#: part/templates/part/detail.html:349
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:360
+#: part/templates/part/detail.html:377
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:393
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:558
+#: part/templates/part/detail.html:575
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:559
+#: part/templates/part/detail.html:576
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:608
+#: part/templates/part/detail.html:625
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:652
+#: part/templates/part/detail.html:682
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:660
+#: part/templates/part/detail.html:690
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:755
+#: part/templates/part/detail.html:785
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:812
+#: part/templates/part/detail.html:842
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:925
+#: part/templates/part/detail.html:955
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:937
+#: part/templates/part/detail.html:967
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:949
+#: part/templates/part/detail.html:979
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1038
+#: part/templates/part/detail.html:1068
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4786,7 +4881,7 @@ msgstr ""
#: templates/js/translated/company.js:508
#: templates/js/translated/company.js:765
#: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:527 templates/js/translated/part.js:604
+#: templates/js/translated/part.js:533 templates/js/translated/part.js:610
msgid "Inactive"
msgstr ""
@@ -4805,10 +4900,6 @@ msgstr ""
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1294
-msgid "On Order"
-msgstr ""
-
#: part/templates/part/part_base.html:210 templates/InvenTree/index.html:178
msgid "Required for Build Orders"
msgstr ""
@@ -4821,12 +4912,12 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:678
+#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:690
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1125
-#: templates/js/translated/part.js:1298
+#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1132
+#: templates/js/translated/part.js:1305
msgid "Building"
msgstr ""
@@ -4878,7 +4969,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:632
+#: templates/js/translated/bom.js:644
msgid "No supplier pricing available"
msgstr ""
@@ -4920,7 +5011,12 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/templates/part/part_sidebar.html:41
+#: part/templates/part/part_sidebar.html:31
+#: stock/templates/stock/stock_sidebar.html:8
+msgid "Allocations"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:45
msgid "Test Templates"
msgstr ""
@@ -4993,7 +5089,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:626
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:638
msgid "Supplier Cost"
msgstr ""
@@ -5015,7 +5111,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1690
+#: part/templates/part/prices.html:215 part/views.py:1699
msgid "Add Internal Price Break"
msgstr ""
@@ -5035,9 +5131,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:588
-#: templates/js/translated/part.js:491 templates/js/translated/part.js:1115
-#: templates/js/translated/part.js:1302
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:600
+#: templates/js/translated/part.js:497 templates/js/translated/part.js:1122
+#: templates/js/translated/part.js:1309
msgid "No Stock"
msgstr ""
@@ -5054,116 +5150,116 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:116
+#: part/templatetags/inventree_extras.py:125
msgid "Unknown database"
msgstr ""
-#: part/views.py:92
+#: part/views.py:93
msgid "Set Part Category"
msgstr ""
-#: part/views.py:142
+#: part/views.py:143
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:214
+#: part/views.py:215
msgid "Match References"
msgstr ""
-#: part/views.py:502
+#: part/views.py:511
msgid "None"
msgstr ""
-#: part/views.py:561
+#: part/views.py:570
msgid "Part QR Code"
msgstr ""
-#: part/views.py:663
+#: part/views.py:672
msgid "Select Part Image"
msgstr ""
-#: part/views.py:689
+#: part/views.py:698
msgid "Updated part image"
msgstr ""
-#: part/views.py:692
+#: part/views.py:701
msgid "Part image not found"
msgstr ""
-#: part/views.py:766
+#: part/views.py:775
msgid "Match Parts"
msgstr ""
-#: part/views.py:1101
+#: part/views.py:1110
msgid "Export Bill of Materials"
msgstr ""
-#: part/views.py:1150
+#: part/views.py:1159
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1157
+#: part/views.py:1166
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1166
+#: part/views.py:1175
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1315
+#: part/views.py:1324
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1325
+#: part/views.py:1334
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1332
+#: part/views.py:1341
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1391 templates/js/translated/part.js:315
+#: part/views.py:1400 templates/js/translated/part.js:315
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1429
+#: part/views.py:1438
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1435
+#: part/views.py:1444
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1444
+#: part/views.py:1453
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1545
+#: part/views.py:1554
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1601
+#: part/views.py:1610
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1623
+#: part/views.py:1632
msgid "Added new price break"
msgstr ""
-#: part/views.py:1699
+#: part/views.py:1708
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1707
+#: part/views.py:1716
msgid "Delete Internal Price Break"
msgstr ""
-#: plugin/integration.py:124
+#: plugin/integration.py:138
msgid "No author found"
msgstr ""
-#: plugin/integration.py:136
+#: plugin/integration.py:152
msgid "No date found"
msgstr ""
@@ -5191,7 +5287,7 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:195
+#: plugin/models.py:199
msgid "Plugin"
msgstr ""
@@ -5357,12 +5453,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:517 stock/templates/stock/item_base.html:156
+#: stock/models.py:519 stock/templates/stock/item_base.html:156
#: templates/js/translated/build.js:293 templates/js/translated/build.js:697
#: templates/js/translated/build.js:1073
#: templates/js/translated/model_renderers.js:95
#: templates/js/translated/order.js:99 templates/js/translated/order.js:1945
-#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:415
+#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:423
msgid "Serial Number"
msgstr ""
@@ -5371,19 +5467,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:1948
+#: stock/models.py:1976
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:1954
+#: stock/models.py:1982
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:49
+#: templates/InvenTree/settings/plugin.html:50
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2367
+#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2525
msgid "Date"
msgstr ""
@@ -5396,23 +5492,27 @@ msgid "Fail"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:123
-#: stock/templates/stock/stock_sidebar.html:12
+#: stock/templates/stock/stock_sidebar.html:16
msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:578 templates/js/translated/stock.js:748
-#: templates/js/translated/stock.js:2627
+#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756
+#: templates/js/translated/stock.js:2785
msgid "Serial"
msgstr ""
-#: stock/api.py:478
+#: stock/api.py:476
msgid "Quantity is required"
msgstr ""
-#: stock/forms.py:77 stock/forms.py:251 stock/models.py:574
+#: stock/api.py:483
+msgid "Valid part must be supplied"
+msgstr ""
+
+#: stock/forms.py:77 stock/forms.py:251 stock/models.py:576
#: stock/templates/stock/item_base.html:193
-#: templates/js/translated/stock.js:1701
+#: templates/js/translated/stock.js:1709
msgid "Expiry Date"
msgstr ""
@@ -5460,228 +5560,228 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:60 stock/models.py:611
+#: stock/models.py:62 stock/models.py:613
#: stock/templates/stock/item_base.html:416
msgid "Owner"
msgstr ""
-#: stock/models.py:61 stock/models.py:612
+#: stock/models.py:63 stock/models.py:614
msgid "Select Owner"
msgstr ""
-#: stock/models.py:336
+#: stock/models.py:338
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:372
+#: stock/models.py:374
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:382 stock/models.py:391
+#: stock/models.py:384 stock/models.py:393
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:383
+#: stock/models.py:385
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:405
+#: stock/models.py:407
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:413
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:418
+#: stock/models.py:420
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:461
+#: stock/models.py:463
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:470
+#: stock/models.py:472
msgid "Base part"
msgstr ""
-#: stock/models.py:478
+#: stock/models.py:480
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:484 stock/templates/stock/location.html:16
+#: stock/models.py:486 stock/templates/stock/location.html:16
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:487
+#: stock/models.py:489
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:494
+#: stock/models.py:496
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:500 stock/templates/stock/item_base.html:298
+#: stock/models.py:502 stock/templates/stock/item_base.html:298
msgid "Installed In"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:505
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:521
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:535
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:537
+#: stock/models.py:539
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:546
+#: stock/models.py:548
msgid "Source Build"
msgstr ""
-#: stock/models.py:548
+#: stock/models.py:550
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:559
+#: stock/models.py:561
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:562
+#: stock/models.py:564
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:568
+#: stock/models.py:570
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:575
+#: stock/models.py:577
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:588
+#: stock/models.py:590
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:588
+#: stock/models.py:590
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:598 stock/templates/stock/item.html:111
+#: stock/models.py:600 stock/templates/stock/item.html:128
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:607
+#: stock/models.py:609
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1068
+#: stock/models.py:1096
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1074
+#: stock/models.py:1102
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1080
+#: stock/models.py:1108
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1083
+#: stock/models.py:1111
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1086
+#: stock/models.py:1114
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1093
+#: stock/models.py:1121
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1164
+#: stock/models.py:1192
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1167
+#: stock/models.py:1195
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1170
+#: stock/models.py:1198
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1173
+#: stock/models.py:1201
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1176
+#: stock/models.py:1204
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1179
+#: stock/models.py:1207
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1186 stock/serializers.py:774
+#: stock/models.py:1214 stock/serializers.py:775
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1190
+#: stock/models.py:1218
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1194
+#: stock/models.py:1222
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1198
+#: stock/models.py:1226
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1369
+#: stock/models.py:1397
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1868
+#: stock/models.py:1896
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1925
+#: stock/models.py:1953
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1931
+#: stock/models.py:1959
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1949
+#: stock/models.py:1977
msgid "Test name"
msgstr ""
-#: stock/models.py:1955 templates/js/translated/table_filters.js:271
+#: stock/models.py:1983 templates/js/translated/table_filters.js:271
msgid "Test result"
msgstr ""
-#: stock/models.py:1961
+#: stock/models.py:1989
msgid "Test output value"
msgstr ""
-#: stock/models.py:1968
+#: stock/models.py:1996
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1974
+#: stock/models.py:2002
msgid "Test notes"
msgstr ""
@@ -5706,7 +5806,7 @@ msgstr ""
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:326 stock/serializers.py:731 stock/serializers.py:972
+#: stock/serializers.py:326 stock/serializers.py:732 stock/serializers.py:973
msgid "Destination stock location"
msgstr ""
@@ -5718,63 +5818,63 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:588
+#: stock/serializers.py:589
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:592
+#: stock/serializers.py:593
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:597
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:626
+#: stock/serializers.py:627
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:632
+#: stock/serializers.py:633
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:640
+#: stock/serializers.py:641
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:650 stock/serializers.py:880
+#: stock/serializers.py:651 stock/serializers.py:881
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:738
+#: stock/serializers.py:739
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:743
+#: stock/serializers.py:744
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:744
+#: stock/serializers.py:745
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:749
+#: stock/serializers.py:750
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:750
+#: stock/serializers.py:751
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:760
+#: stock/serializers.py:761
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:842
+#: stock/serializers.py:843
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:870
+#: stock/serializers.py:871
msgid "Stock transaction notes"
msgstr ""
@@ -5787,47 +5887,51 @@ msgid "New Entry"
msgstr ""
#: stock/templates/stock/item.html:48
-msgid "Child Stock Items"
-msgstr ""
-
-#: stock/templates/stock/item.html:55
-msgid "This stock item does not have any child items"
+msgid "Stock Item Allocations"
msgstr ""
#: stock/templates/stock/item.html:64
-#: stock/templates/stock/stock_sidebar.html:8
-msgid "Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:57
-msgid "Test Report"
+msgid "Child Stock Items"
msgstr ""
#: stock/templates/stock/item.html:72
+msgid "This stock item does not have any child items"
+msgstr ""
+
+#: stock/templates/stock/item.html:81
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:57
+msgid "Test Report"
+msgstr ""
+
+#: stock/templates/stock/item.html:89
msgid "Delete Test Data"
msgstr ""
-#: stock/templates/stock/item.html:76
+#: stock/templates/stock/item.html:93
msgid "Add Test Data"
msgstr ""
-#: stock/templates/stock/item.html:133
+#: stock/templates/stock/item.html:150
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:137 stock/views.py:482
+#: stock/templates/stock/item.html:154 stock/views.py:482
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304
+#: stock/templates/stock/item.html:309 stock/templates/stock/item.html:334
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:324
+#: stock/templates/stock/item.html:354
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:338
+#: stock/templates/stock/item.html:368
msgid "Delete Test Result"
msgstr ""
@@ -5952,7 +6056,7 @@ msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:206
-#: templates/js/translated/stock.js:1714
+#: templates/js/translated/stock.js:1722
msgid "Last Updated"
msgstr ""
@@ -6111,7 +6215,7 @@ msgid "Sublocations"
msgstr ""
#: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164
-#: templates/stats.html:97 users/models.py:42
+#: templates/stats.html:109 users/models.py:42
msgid "Stock Locations"
msgstr ""
@@ -6135,7 +6239,7 @@ msgstr ""
msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/stock_sidebar.html:16
+#: stock/templates/stock/stock_sidebar.html:20
msgid "Child Items"
msgstr ""
@@ -6164,7 +6268,7 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:162
+#: stock/views.py:162 templates/js/translated/stock.js:139
msgid "Edit Stock Location"
msgstr ""
@@ -6204,7 +6308,7 @@ msgstr ""
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:727 templates/js/translated/stock.js:1066
+#: stock/views.py:727 templates/js/translated/stock.js:1074
msgid "Confirm stock adjustment"
msgstr ""
@@ -6212,7 +6316,7 @@ msgstr ""
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:324
+#: stock/views.py:760 templates/js/translated/stock.js:332
msgid "Edit Stock Item"
msgstr ""
@@ -6224,7 +6328,7 @@ msgstr ""
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1153 templates/js/translated/stock.js:304
+#: stock/views.py:1153 templates/js/translated/stock.js:312
msgid "Duplicate Stock Item"
msgstr ""
@@ -6268,6 +6372,18 @@ msgstr ""
msgid "The requested page does not exist"
msgstr ""
+#: templates/500.html:5 templates/500.html:11
+msgid "Internal Server Error"
+msgstr ""
+
+#: templates/500.html:14
+msgid "The InvenTree server raised an internal error"
+msgstr ""
+
+#: templates/500.html:15
+msgid "Refer to the error log in the admin interface for further details"
+msgstr ""
+
#: templates/503.html:10 templates/503.html:35
msgid "Site is in Maintenance"
msgstr ""
@@ -6390,7 +6506,7 @@ msgid "Signup"
msgstr ""
#: templates/InvenTree/settings/mixins/settings.html:5
-#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:118
+#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113
msgid "Settings"
msgstr ""
@@ -6431,43 +6547,43 @@ msgstr ""
msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage."
msgstr ""
-#: templates/InvenTree/settings/plugin.html:32
+#: templates/InvenTree/settings/plugin.html:33
msgid "Plugins"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:37
+#: templates/InvenTree/settings/plugin.html:38
#: templates/js/translated/plugin.js:15
msgid "Install Plugin"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:46 templates/navbar.html:111
+#: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111
#: users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin.html:49
#: templates/InvenTree/settings/plugin_settings.html:28
msgid "Author"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:50
+#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin_settings.html:43
msgid "Version"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:91
+#: templates/InvenTree/settings/plugin.html:92
msgid "Inactive plugins"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:114
+#: templates/InvenTree/settings/plugin.html:115
msgid "Plugin Error Stack"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:123
+#: templates/InvenTree/settings/plugin.html:124
msgid "Stage"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:125
+#: templates/InvenTree/settings/plugin.html:126
msgid "Message"
msgstr ""
@@ -6555,37 +6671,37 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:75
+#: templates/InvenTree/settings/settings.html:78
msgid "Edit Plugin Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:77
+#: templates/InvenTree/settings/settings.html:80
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:79
+#: templates/InvenTree/settings/settings.html:82
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:168
+#: templates/InvenTree/settings/settings.html:171
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:190
-#: templates/InvenTree/settings/settings.html:289
+#: templates/InvenTree/settings/settings.html:193
+#: templates/InvenTree/settings/settings.html:292
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:191
-#: templates/InvenTree/settings/settings.html:290
+#: templates/InvenTree/settings/settings.html:194
+#: templates/InvenTree/settings/settings.html:293
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:269
+#: templates/InvenTree/settings/settings.html:272
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:273
+#: templates/InvenTree/settings/settings.html:276
msgid "ID"
msgstr ""
@@ -6763,124 +6879,105 @@ msgstr ""
msgid "Remove multifactor"
msgstr ""
-#: templates/InvenTree/settings/user.html:219
+#: templates/InvenTree/settings/user.html:220
+msgid "Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:226
+msgid "Log out active sessions (except this one)"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:227
+msgid "Log Out Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:236
+msgid "unknown on unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:237
+msgid "unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:241
+msgid "IP Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:242
+msgid "Device"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:243
+msgid "Last Activity"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:252
+#, python-format
+msgid "%(time)s ago (this session)"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:254
+#, python-format
+msgid "%(time)s ago"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:266
+msgid "Do you really want to remove the selected email address?"
+msgstr ""
+
#: templates/InvenTree/settings/user_display.html:25
msgid "Theme Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:227
#: templates/InvenTree/settings/user_display.html:35
msgid "Select theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:237
#: templates/InvenTree/settings/user_display.html:46
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:246
#: templates/InvenTree/settings/user_display.html:54
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:254
#: templates/InvenTree/settings/user_display.html:63
msgid "Select language"
msgstr ""
-#: templates/InvenTree/settings/user.html:270
#: templates/InvenTree/settings/user_display.html:79
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:272
#: templates/InvenTree/settings/user_display.html:81
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:279
#: templates/InvenTree/settings/user_display.html:88
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:281
#: templates/InvenTree/settings/user_display.html:91
msgid "Some languages are not complete"
msgstr ""
-#: templates/InvenTree/settings/user.html:283
#: templates/InvenTree/settings/user_display.html:93
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user.html:285
+#: templates/InvenTree/settings/user_display.html:95
+msgid "and hidden."
+msgstr ""
+
#: templates/InvenTree/settings/user_display.html:95
msgid "Show them too"
msgstr ""
-#: templates/InvenTree/settings/user.html:292
#: templates/InvenTree/settings/user_display.html:101
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user.html:293
-#, python-format
-msgid "Native language translation of the\n"
-" InvenTree web application is community contributed via crowdin. Contributions are\n"
-" welcomed and encouraged."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:302
-msgid "Active Sessions"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:308
-msgid "Log out active sessions (except this one)"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:309
-msgid "Log Out Active Sessions"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:318
-msgid "unknown on unknown"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:319
-msgid "unknown"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:323
-msgid "IP Address"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:324
-msgid "Device"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:325
-msgid "Last Activity"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:334
-#, python-format
-msgid "%(time)s ago (this session)"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:336
-#, python-format
-msgid "%(time)s ago"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:348
-msgid "Do you really want to remove the selected email address?"
-msgstr ""
-
-#: templates/InvenTree/settings/user_display.html:95
-msgid "and hidden."
-msgstr ""
-
#: templates/InvenTree/settings/user_display.html:102
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
@@ -6899,9 +6996,9 @@ msgid "InvenTree Version Information"
msgstr ""
#: templates/about.html:11 templates/about.html:105
-#: templates/js/translated/bom.js:395 templates/js/translated/modals.js:53
-#: templates/js/translated/modals.js:573 templates/js/translated/modals.js:667
-#: templates/js/translated/modals.js:970 templates/modals.html:15
+#: templates/js/translated/bom.js:407 templates/js/translated/modals.js:53
+#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
+#: templates/js/translated/modals.js:983 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -7178,13 +7275,13 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1103
+#: templates/js/translated/bom.js:1117
msgid "Required Quantity"
msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:579 templates/js/translated/build.js:1189
+#: templates/js/translated/bom.js:591 templates/js/translated/build.js:1189
#: templates/js/translated/build.js:1810
#: templates/js/translated/table_filters.js:178
msgid "Available"
@@ -7208,10 +7305,6 @@ msgstr ""
msgid "Click on the following link to view this part"
msgstr ""
-#: templates/email/low_stock_notification.html:17
-msgid "Total Stock"
-msgstr ""
-
#: templates/email/low_stock_notification.html:19
msgid "Minimum Quantity"
msgstr ""
@@ -7232,11 +7325,11 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1040
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1053
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1041
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1054
msgid "No response from the InvenTree server"
msgstr ""
@@ -7248,27 +7341,27 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1063
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1051
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1064
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1068
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1056
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1069
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1073
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1061
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1074
msgid "The requested resource could not be located on the server"
msgstr ""
@@ -7280,11 +7373,11 @@ msgstr ""
msgid "HTTP method not allowed at URL"
msgstr ""
-#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1065
+#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1078
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1079
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -7353,7 +7446,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:140
-#: templates/js/translated/modals.js:1030
+#: templates/js/translated/modals.js:1043
msgid "Invalid server response"
msgstr ""
@@ -7381,7 +7474,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1018
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026
msgid "Remove stock item"
msgstr ""
@@ -7428,12 +7521,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73
-#: templates/js/translated/order.js:369 templates/js/translated/stock.js:510
+#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74
-#: templates/js/translated/order.js:370 templates/js/translated/stock.js:511
+#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519
msgid "Select file format"
msgstr ""
@@ -7489,87 +7582,87 @@ msgstr ""
msgid "Remove substitute part"
msgstr ""
-#: templates/js/translated/bom.js:340
-msgid "Select and add a new variant item using the input below"
+#: templates/js/translated/bom.js:352
+msgid "Select and add a new substitute part using the input below"
msgstr ""
-#: templates/js/translated/bom.js:351
+#: templates/js/translated/bom.js:363
msgid "Are you sure you wish to remove this substitute part link?"
msgstr ""
-#: templates/js/translated/bom.js:357
+#: templates/js/translated/bom.js:369
msgid "Remove Substitute Part"
msgstr ""
-#: templates/js/translated/bom.js:396
+#: templates/js/translated/bom.js:408
msgid "Add Substitute"
msgstr ""
-#: templates/js/translated/bom.js:397
+#: templates/js/translated/bom.js:409
msgid "Edit BOM Item Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:516
+#: templates/js/translated/bom.js:528
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:520 templates/js/translated/build.js:1171
+#: templates/js/translated/bom.js:532 templates/js/translated/build.js:1171
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:525
+#: templates/js/translated/bom.js:537
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:597
+#: templates/js/translated/bom.js:609
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:612
+#: templates/js/translated/bom.js:624
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:619
+#: templates/js/translated/bom.js:631
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:668 templates/js/translated/bom.js:757
+#: templates/js/translated/bom.js:680 templates/js/translated/bom.js:769
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:728
+#: templates/js/translated/bom.js:740
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:730
+#: templates/js/translated/bom.js:742
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:732
+#: templates/js/translated/bom.js:744
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:734 templates/js/translated/bom.js:908
+#: templates/js/translated/bom.js:746 templates/js/translated/bom.js:920
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:736 templates/js/translated/bom.js:891
+#: templates/js/translated/bom.js:748 templates/js/translated/bom.js:903
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:830 templates/js/translated/build.js:915
+#: templates/js/translated/bom.js:842 templates/js/translated/build.js:915
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:886
+#: templates/js/translated/bom.js:898
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:1086 templates/js/translated/build.js:1155
+#: templates/js/translated/bom.js:1100 templates/js/translated/build.js:1155
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1108
+#: templates/js/translated/bom.js:1122
msgid "Inherited from parent BOM"
msgstr ""
@@ -7725,9 +7818,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1206
-#: templates/js/translated/part.js:1617 templates/js/translated/stock.js:1512
-#: templates/js/translated/stock.js:2321
+#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1213
+#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1520
+#: templates/js/translated/stock.js:2479
msgid "Select"
msgstr ""
@@ -7735,7 +7828,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2540
+#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2698
msgid "No user information"
msgstr ""
@@ -7808,34 +7901,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:511
-#: templates/js/translated/part.js:596
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:517
+#: templates/js/translated/part.js:602
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:515
-#: templates/js/translated/part.js:600
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:521
+#: templates/js/translated/part.js:606
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:690
+#: templates/js/translated/company.js:631 templates/js/translated/part.js:696
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:732
+#: templates/js/translated/company.js:668 templates/js/translated/part.js:738
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:733
+#: templates/js/translated/company.js:669 templates/js/translated/part.js:739
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:750
+#: templates/js/translated/company.js:688 templates/js/translated/part.js:756
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:762
+#: templates/js/translated/company.js:699 templates/js/translated/part.js:768
msgid "Delete Parameter"
msgstr ""
@@ -7844,12 +7937,12 @@ msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:420
+#: templates/js/translated/filters.js:429
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:421
+#: templates/js/translated/filters.js:430
msgid "false"
msgstr ""
@@ -7869,7 +7962,7 @@ msgstr ""
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:329
+#: templates/js/translated/filters.js:338
msgid "Create filter"
msgstr ""
@@ -7898,20 +7991,20 @@ msgstr ""
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1080 templates/modals.html:19
+#: templates/js/translated/forms.js:1082 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1471
+#: templates/js/translated/forms.js:1487
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1675
+#: templates/js/translated/forms.js:1691
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1895
+#: templates/js/translated/forms.js:1930
msgid "Clear input"
msgstr ""
@@ -7924,7 +8017,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1042
+#: templates/js/translated/stock.js:1050
msgid "Select Stock Items"
msgstr ""
@@ -7974,12 +8067,12 @@ msgid "Select Label Template"
msgstr ""
#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
-#: templates/js/translated/modals.js:599
+#: templates/js/translated/modals.js:610
msgid "Cancel"
msgstr ""
#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:666 templates/js/translated/modals.js:969
+#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:982
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
@@ -7988,47 +8081,47 @@ msgstr ""
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:381
+#: templates/js/translated/modals.js:392
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:540
+#: templates/js/translated/modals.js:551
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:598
+#: templates/js/translated/modals.js:609
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:655
+#: templates/js/translated/modals.js:666
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:921
+#: templates/js/translated/modals.js:934
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:921
+#: templates/js/translated/modals.js:934
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:946
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1030
+#: templates/js/translated/modals.js:1043
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1045
+#: templates/js/translated/modals.js:1058
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1046
+#: templates/js/translated/modals.js:1059
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1069
+#: templates/js/translated/modals.js:1082
msgid "Error requesting form data"
msgstr ""
@@ -8052,23 +8145,24 @@ msgstr ""
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:236
+#: templates/js/translated/model_renderers.js:249
+#: templates/js/translated/model_renderers.js:270
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:253
+#: templates/js/translated/model_renderers.js:287
msgid "Shipment ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:273
+#: templates/js/translated/model_renderers.js:307
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:310
+#: templates/js/translated/model_renderers.js:344
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:339
+#: templates/js/translated/model_renderers.js:373
msgid "Supplier Part ID"
msgstr ""
@@ -8116,7 +8210,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2123
+#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2131
msgid "Stock Status"
msgstr ""
@@ -8140,7 +8234,7 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:790 templates/js/translated/part.js:803
+#: templates/js/translated/order.js:790 templates/js/translated/part.js:809
msgid "No purchase orders found"
msgstr ""
@@ -8165,7 +8259,7 @@ msgid "Total"
msgstr ""
#: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163
-#: templates/js/translated/part.js:1834 templates/js/translated/part.js:2045
+#: templates/js/translated/part.js:1841 templates/js/translated/part.js:2052
msgid "Unit Price"
msgstr ""
@@ -8181,7 +8275,7 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1166 templates/js/translated/part.js:935
+#: templates/js/translated/order.js:1166 templates/js/translated/part.js:942
msgid "Receive line item"
msgstr ""
@@ -8250,7 +8344,7 @@ msgid "Delete Stock Allocation"
msgstr ""
#: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048
-#: templates/js/translated/stock.js:1428
+#: templates/js/translated/stock.js:1436
msgid "Shipped to customer"
msgstr ""
@@ -8378,144 +8472,148 @@ msgstr ""
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:412
+#: templates/js/translated/part.js:351
+msgid "Create Part Variant"
+msgstr ""
+
+#: templates/js/translated/part.js:418
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:414
+#: templates/js/translated/part.js:420
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:419
+#: templates/js/translated/part.js:425
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:421
+#: templates/js/translated/part.js:427
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:438
+#: templates/js/translated/part.js:444
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:448
+#: templates/js/translated/part.js:454
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:451
+#: templates/js/translated/part.js:457
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:475
+#: templates/js/translated/part.js:481
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:503 templates/js/translated/part.js:588
+#: templates/js/translated/part.js:509 templates/js/translated/part.js:594
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:507 templates/js/translated/part.js:592
+#: templates/js/translated/part.js:513 templates/js/translated/part.js:598
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:519
+#: templates/js/translated/part.js:525
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:529
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:638
+#: templates/js/translated/part.js:644
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1005
+#: templates/js/translated/part.js:1012
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1029
+#: templates/js/translated/part.js:1036
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1096 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:1363
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1266
+#: templates/js/translated/part.js:1273
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1289
+#: templates/js/translated/part.js:1296
#: templates/js/translated/table_filters.js:430
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1380 templates/js/translated/part.js:1552
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559
+#: templates/js/translated/stock.js:2440
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1396
+#: templates/js/translated/part.js:1403
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1571 templates/js/translated/stock.js:2301
+#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2459
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1635
+#: templates/js/translated/part.js:1642
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1649 templates/js/translated/stock.js:2345
+#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2503
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1693
+#: templates/js/translated/part.js:1700
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1744 templates/js/translated/stock.js:1234
+#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1242
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1745 templates/js/translated/stock.js:1235
+#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1243
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1751
+#: templates/js/translated/part.js:1758
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1773
+#: templates/js/translated/part.js:1780
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1787
+#: templates/js/translated/part.js:1794
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1812
+#: templates/js/translated/part.js:1819
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1867
+#: templates/js/translated/part.js:1874
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1868
+#: templates/js/translated/part.js:1875
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1969
+#: templates/js/translated/part.js:1976
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1988
+#: templates/js/translated/part.js:1995
msgid "Single Price Difference"
msgstr ""
@@ -8589,340 +8687,344 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:73
+#: templates/js/translated/stock.js:74
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:173
+#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:181
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/stock.js:93 templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:94 templates/js/translated/stock.js:183
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/stock.js:101
+#: templates/js/translated/stock.js:102
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:110
+#: templates/js/translated/stock.js:111
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:146
+#: templates/js/translated/stock.js:154
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:186
+#: templates/js/translated/stock.js:194
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:225
+#: templates/js/translated/stock.js:233
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:231
+#: templates/js/translated/stock.js:239
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:374
+#: templates/js/translated/stock.js:382
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:387
+#: templates/js/translated/stock.js:395
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:412
+#: templates/js/translated/stock.js:420
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:416 templates/js/translated/stock.js:417
+#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:433
+#: templates/js/translated/stock.js:441
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:453
+#: templates/js/translated/stock.js:461
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:462
+#: templates/js/translated/stock.js:470
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:507
+#: templates/js/translated/stock.js:515
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:518
+#: templates/js/translated/stock.js:526
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:527
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:628
+#: templates/js/translated/stock.js:636
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:629
+#: templates/js/translated/stock.js:637
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:706
+#: templates/js/translated/stock.js:714
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:707
+#: templates/js/translated/stock.js:715
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:709
+#: templates/js/translated/stock.js:717
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:710
+#: templates/js/translated/stock.js:718
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:796
+#: templates/js/translated/stock.js:804
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:797
+#: templates/js/translated/stock.js:805
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:892
+#: templates/js/translated/stock.js:900
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:893
+#: templates/js/translated/stock.js:901
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:899
+#: templates/js/translated/stock.js:907
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:900
+#: templates/js/translated/stock.js:908
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:904
+#: templates/js/translated/stock.js:912
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:905
+#: templates/js/translated/stock.js:913
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:909
+#: templates/js/translated/stock.js:917
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:910 users/models.py:206
+#: templates/js/translated/stock.js:918 users/models.py:208
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:914 templates/stock_table.html:58
+#: templates/js/translated/stock.js:922 templates/stock_table.html:58
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1003
+#: templates/js/translated/stock.js:1011
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1003
+#: templates/js/translated/stock.js:1011
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1043
+#: templates/js/translated/stock.js:1051
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1201
+#: templates/js/translated/stock.js:1209
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1211
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1208
+#: templates/js/translated/stock.js:1216
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1230
+#: templates/js/translated/stock.js:1238
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1256
+#: templates/js/translated/stock.js:1264
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1313
+#: templates/js/translated/stock.js:1321
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1420
+#: templates/js/translated/stock.js:1428
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1424
+#: templates/js/translated/stock.js:1432
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1432
+#: templates/js/translated/stock.js:1440
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1438
+#: templates/js/translated/stock.js:1446
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1596
+#: templates/js/translated/stock.js:1604
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1601
+#: templates/js/translated/stock.js:1609
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1612
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/stock.js:1616
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1610
+#: templates/js/translated/stock.js:1618
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1616
+#: templates/js/translated/stock.js:1624
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1626
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1620
+#: templates/js/translated/stock.js:1628
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1625
+#: templates/js/translated/stock.js:1633
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1632
+#: templates/js/translated/stock.js:1640
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1634
+#: templates/js/translated/stock.js:1642
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1644
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1640
+#: templates/js/translated/stock.js:1648
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1698
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1763
+#: templates/js/translated/stock.js:1771
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1801
+#: templates/js/translated/stock.js:1809
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1822 templates/js/translated/stock.js:1870
+#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:1878
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1910
+#: templates/js/translated/stock.js:1918
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1937
+#: templates/js/translated/stock.js:1945
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1939
+#: templates/js/translated/stock.js:1947
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:2138
+#: templates/js/translated/stock.js:2146
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2152
+#: templates/js/translated/stock.js:2160
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2153
+#: templates/js/translated/stock.js:2161
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2377
+#: templates/js/translated/stock.js:2340
+msgid "Allocated Quantity"
+msgstr ""
+
+#: templates/js/translated/stock.js:2535
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:2399
+#: templates/js/translated/stock.js:2557
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2424
+#: templates/js/translated/stock.js:2582
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2443
+#: templates/js/translated/stock.js:2601
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2462
+#: templates/js/translated/stock.js:2620
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2480
+#: templates/js/translated/stock.js:2638
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2503
+#: templates/js/translated/stock.js:2661
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2511
+#: templates/js/translated/stock.js:2669
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2552
+#: templates/js/translated/stock.js:2710
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2553
+#: templates/js/translated/stock.js:2711
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2604
+#: templates/js/translated/stock.js:2762
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2655
+#: templates/js/translated/stock.js:2813
msgid "Uninstall Stock Item"
msgstr ""
@@ -9194,11 +9296,11 @@ msgstr ""
msgid "Sell"
msgstr ""
-#: templates/navbar.html:113
+#: templates/navbar.html:114
msgid "Logout"
msgstr ""
-#: templates/navbar.html:115
+#: templates/navbar.html:116
msgid "Login"
msgstr ""
@@ -9246,31 +9348,43 @@ msgstr ""
msgid "Server is deployed using docker"
msgstr ""
-#: templates/stats.html:40
-msgid "Server status"
+#: templates/stats.html:39
+msgid "Plugin Support"
msgstr ""
#: templates/stats.html:43
-msgid "Healthy"
+msgid "Plugin support enabled"
msgstr ""
#: templates/stats.html:45
-msgid "Issues detected"
+msgid "Plugin support disabled"
msgstr ""
#: templates/stats.html:52
-msgid "Background Worker"
+msgid "Server status"
msgstr ""
#: templates/stats.html:55
+msgid "Healthy"
+msgstr ""
+
+#: templates/stats.html:57
+msgid "Issues detected"
+msgstr ""
+
+#: templates/stats.html:64
+msgid "Background Worker"
+msgstr ""
+
+#: templates/stats.html:67
msgid "Background worker not running"
msgstr ""
-#: templates/stats.html:63
+#: templates/stats.html:75
msgid "Email Settings"
msgstr ""
-#: templates/stats.html:66
+#: templates/stats.html:78
msgid "Email settings not configured"
msgstr ""
@@ -9366,35 +9480,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:193
+#: users/models.py:195
msgid "Permission set"
msgstr ""
-#: users/models.py:201
+#: users/models.py:203
msgid "Group"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
msgid "View"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
msgid "Permission to view items"
msgstr ""
-#: users/models.py:206
+#: users/models.py:208
msgid "Permission to add items"
msgstr ""
-#: users/models.py:208
+#: users/models.py:210
msgid "Change"
msgstr ""
-#: users/models.py:208
+#: users/models.py:210
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:210
+#: users/models.py:212
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/tr/LC_MESSAGES/django.po b/InvenTree/locale/tr/LC_MESSAGES/django.po
index ba5c2b4fa3..1a73c9dea2 100644
--- a/InvenTree/locale/tr/LC_MESSAGES/django.po
+++ b/InvenTree/locale/tr/LC_MESSAGES/django.po
@@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-01-10 03:54+0000\n"
-"PO-Revision-Date: 2022-01-10 03:58\n"
+"POT-Creation-Date: 2022-01-29 00:17+0000\n"
+"PO-Revision-Date: 2022-01-29 01:11\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
"Language: tr_TR\n"
@@ -18,15 +18,15 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 138\n"
-#: InvenTree/api.py:64
+#: InvenTree/api.py:55
msgid "API endpoint not found"
msgstr "API uç noktası bulunamadı"
-#: InvenTree/api.py:110
+#: InvenTree/api.py:101
msgid "No action specified"
msgstr "İşlem belirtilmedi"
-#: InvenTree/api.py:124
+#: InvenTree/api.py:116
msgid "No matching action found"
msgstr "Eşleşen eylem bulunamadı"
@@ -80,41 +80,41 @@ msgstr ""
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:437
+#: InvenTree/helpers.py:439
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr "Tekrarlanan seri {n}"
-#: InvenTree/helpers.py:444 order/models.py:279 order/models.py:420
+#: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425
#: stock/views.py:1231
msgid "Invalid quantity provided"
msgstr "Geçersiz veri sağlandı"
-#: InvenTree/helpers.py:447
+#: InvenTree/helpers.py:449
msgid "Empty serial number string"
msgstr "Boş seri numarası dizesi"
-#: InvenTree/helpers.py:469 InvenTree/helpers.py:472 InvenTree/helpers.py:475
-#: InvenTree/helpers.py:500
+#: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477
+#: InvenTree/helpers.py:502
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Geçersiz grup: {g}"
-#: InvenTree/helpers.py:510
+#: InvenTree/helpers.py:512
#, python-brace-format
msgid "Invalid group {group}"
msgstr ""
-#: InvenTree/helpers.py:516
+#: InvenTree/helpers.py:518
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:522
+#: InvenTree/helpers.py:524
msgid "No serial numbers found"
msgstr "Seri numarası bulunamadı"
-#: InvenTree/helpers.py:526
+#: InvenTree/helpers.py:528
#, python-brace-format
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})"
@@ -127,7 +127,7 @@ msgstr ""
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:132 stock/models.py:1967
+#: InvenTree/models.py:132 stock/models.py:1995
#: templates/js/translated/attachment.js:119
msgid "Attachment"
msgstr "Ek"
@@ -137,15 +137,15 @@ msgid "Select file to attach"
msgstr "Eklenecek dosyayı seç"
#: InvenTree/models.py:139 company/models.py:131 company/models.py:348
-#: company/models.py:564 order/models.py:124 part/models.py:828
+#: company/models.py:564 order/models.py:127 part/models.py:830
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1317
+#: templates/js/translated/company.js:829 templates/js/translated/part.js:1324
msgid "Link"
msgstr "Bağlantı"
-#: InvenTree/models.py:140 build/models.py:330 part/models.py:829
-#: stock/models.py:527
+#: InvenTree/models.py:140 build/models.py:332 part/models.py:831
+#: stock/models.py:529
msgid "Link to external URL"
msgstr "Harici URL'ye bağlantı"
@@ -157,10 +157,11 @@ msgstr "Yorum"
msgid "File comment"
msgstr "Dosya yorumu"
-#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213
-#: common/models.py:1214 part/models.py:2258 part/models.py:2278
+#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1223
+#: common/models.py:1224 common/models.py:1452 common/models.py:1453
+#: part/models.py:2265 part/models.py:2285
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2534
+#: templates/js/translated/stock.js:2692
msgid "User"
msgstr "Kullanıcı"
@@ -197,42 +198,42 @@ msgstr ""
msgid "Invalid choice"
msgstr "Geçersiz seçim"
-#: InvenTree/models.py:277 InvenTree/models.py:278 company/models.py:415
-#: label/models.py:112 part/models.py:772 part/models.py:2442
-#: plugin/models.py:40 report/models.py:181
+#: InvenTree/models.py:277 InvenTree/models.py:278 common/models.py:1438
+#: company/models.py:415 label/models.py:112 part/models.py:774
+#: part/models.py:2449 plugin/models.py:40 report/models.py:181
#: templates/InvenTree/settings/mixins/urls.html:13
-#: templates/InvenTree/settings/plugin.html:47
-#: templates/InvenTree/settings/plugin.html:124
+#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin.html:125
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:279
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:561
-#: templates/js/translated/part.js:700 templates/js/translated/part.js:1624
-#: templates/js/translated/stock.js:2327
+#: templates/InvenTree/settings/settings.html:282
+#: templates/js/translated/company.js:641 templates/js/translated/part.js:567
+#: templates/js/translated/part.js:706 templates/js/translated/part.js:1631
+#: templates/js/translated/stock.js:2485
msgid "Name"
msgstr "Adı"
-#: InvenTree/models.py:284 build/models.py:207
+#: InvenTree/models.py:284 build/models.py:209
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:73 label/models.py:119
-#: order/models.py:122 part/models.py:795 part/templates/part/category.html:74
+#: order/models.py:125 part/models.py:797 part/templates/part/category.html:74
#: part/templates/part/part_base.html:163
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:93
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:327 templates/js/translated/bom.js:540
+#: templates/js/translated/bom.js:339 templates/js/translated/bom.js:552
#: templates/js/translated/build.js:1682 templates/js/translated/company.js:345
#: templates/js/translated/company.js:551
#: templates/js/translated/company.js:840 templates/js/translated/order.js:836
#: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258
-#: templates/js/translated/part.js:620 templates/js/translated/part.js:992
-#: templates/js/translated/part.js:1077 templates/js/translated/part.js:1247
-#: templates/js/translated/part.js:1643 templates/js/translated/part.js:1712
-#: templates/js/translated/stock.js:1569 templates/js/translated/stock.js:2339
-#: templates/js/translated/stock.js:2384
+#: templates/js/translated/part.js:626 templates/js/translated/part.js:999
+#: templates/js/translated/part.js:1084 templates/js/translated/part.js:1254
+#: templates/js/translated/part.js:1650 templates/js/translated/part.js:1719
+#: templates/js/translated/stock.js:1577 templates/js/translated/stock.js:2314
+#: templates/js/translated/stock.js:2497 templates/js/translated/stock.js:2542
msgid "Description"
msgstr "Açıklama"
@@ -244,7 +245,7 @@ msgstr "Açıklama (isteğe bağlı)"
msgid "parent"
msgstr "üst"
-#: InvenTree/serializers.py:65 part/models.py:2727
+#: InvenTree/serializers.py:65 part/models.py:2734
msgid "Must be a valid number"
msgstr "Geçerli bir numara olmalı"
@@ -252,83 +253,83 @@ msgstr "Geçerli bir numara olmalı"
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:661
msgid "German"
msgstr "Almanca"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:662
msgid "Greek"
msgstr "Yunanca"
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:663
msgid "English"
msgstr "İngilizce"
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:664
msgid "Spanish"
msgstr "İspanyolca"
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:665
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:666
msgid "French"
msgstr "Fransızca"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:667
msgid "Hebrew"
msgstr "İbranice"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:668
msgid "Italian"
msgstr "İtalyanca"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:669
msgid "Japanese"
msgstr "Japonca"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:670
msgid "Korean"
msgstr "Korece"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:671
msgid "Dutch"
msgstr "Flemenkçe"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:672
msgid "Norwegian"
msgstr "Norveççe"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:673
msgid "Polish"
msgstr "Polonyaca"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:674
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:675
msgid "Russian"
msgstr "Rusça"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:676
msgid "Swedish"
msgstr "İsveççe"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:677
msgid "Thai"
msgstr "Tay dili"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:678
msgid "Turkish"
msgstr "Türkçe"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:679
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:680
msgid "Chinese"
msgstr "Çince"
@@ -374,7 +375,7 @@ msgstr "Kayıp"
msgid "Returned"
msgstr "İade"
-#: InvenTree/status_codes.py:143 order/models.py:941
+#: InvenTree/status_codes.py:143 order/models.py:961
#: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255
msgid "Shipped"
msgstr "Sevk edildi"
@@ -455,7 +456,7 @@ msgstr "Üst ögeden ayır"
msgid "Split child item"
msgstr "Alt ögeyi ayır"
-#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2064
+#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2072
msgid "Merged stock items"
msgstr ""
@@ -543,56 +544,56 @@ msgstr "Parola alanları eşleşmelidir"
msgid "System Information"
msgstr "Sistem Bilgisi"
-#: barcodes/api.py:54 barcodes/api.py:151
+#: barcodes/api.py:54 barcodes/api.py:152
msgid "Must provide barcode_data parameter"
msgstr "Barcode_data parametresini sağlamalıdır"
-#: barcodes/api.py:127
+#: barcodes/api.py:128
msgid "No match found for barcode data"
msgstr "Barkod verisi için eşleşme bulunamadı"
-#: barcodes/api.py:129
+#: barcodes/api.py:130
msgid "Match found for barcode data"
msgstr "Barkod verisi için eşleşme bulundu"
-#: barcodes/api.py:154
+#: barcodes/api.py:155
msgid "Must provide stockitem parameter"
msgstr "Stok kalemi parametresi sağlamalıdır"
-#: barcodes/api.py:161
+#: barcodes/api.py:162
msgid "No matching stock item found"
msgstr "Eşleşen stok kalemi bulunamadı"
-#: barcodes/api.py:191
+#: barcodes/api.py:193
msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:195
+#: barcodes/api.py:197
msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:199
+#: barcodes/api.py:201
msgid "Barcode already matches Part"
msgstr ""
-#: barcodes/api.py:205 barcodes/api.py:217
+#: barcodes/api.py:207 barcodes/api.py:219
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:223
+#: barcodes/api.py:225
msgid "Barcode associated with Stock Item"
msgstr ""
-#: build/forms.py:36 build/models.py:1286
+#: build/forms.py:36 build/models.py:1293
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:35 common/models.py:1253
+#: build/templates/build/detail.html:35 common/models.py:1263
#: company/forms.py:42 company/templates/company/supplier_part.html:251
-#: order/models.py:796 order/models.py:1207 order/serializers.py:810
+#: order/models.py:805 order/models.py:1229 order/serializers.py:816
#: order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:145
-#: part/forms.py:161 part/forms.py:177 part/models.py:2629
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144
+#: part/forms.py:160 part/forms.py:176 part/models.py:2636
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:962 part/templates/part/detail.html:1048
+#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -603,7 +604,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:181
#: stock/templates/stock/item_base.html:262
#: stock/templates/stock/item_base.html:270
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:555
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:567
#: templates/js/translated/build.js:295 templates/js/translated/build.js:495
#: templates/js/translated/build.js:689 templates/js/translated/build.js:699
#: templates/js/translated/build.js:1075 templates/js/translated/build.js:1422
@@ -611,11 +612,11 @@ msgstr ""
#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056
#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859
#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036
-#: templates/js/translated/order.js:2150 templates/js/translated/part.js:900
-#: templates/js/translated/part.js:1855 templates/js/translated/part.js:1978
-#: templates/js/translated/part.js:2056 templates/js/translated/stock.js:383
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:750
-#: templates/js/translated/stock.js:2519 templates/js/translated/stock.js:2621
+#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906
+#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985
+#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:391
+#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758
+#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2779
msgid "Quantity"
msgstr "Miktar"
@@ -623,9 +624,9 @@ msgstr "Miktar"
msgid "Enter quantity for build output"
msgstr "Yapım işi çıktısı için miktarını girin"
-#: build/forms.py:41 order/serializers.py:814 stock/forms.py:81
-#: stock/serializers.py:314 templates/js/translated/stock.js:230
-#: templates/js/translated/stock.js:384
+#: build/forms.py:41 order/serializers.py:820 stock/forms.py:81
+#: stock/serializers.py:314 templates/js/translated/stock.js:238
+#: templates/js/translated/stock.js:392
msgid "Serial Numbers"
msgstr "Seri Numaraları"
@@ -649,18 +650,18 @@ msgstr "İptali Onayla"
msgid "Confirm build cancellation"
msgstr "Yapım işi iptalini onayla"
-#: build/models.py:133
+#: build/models.py:135
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:139 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:457
+#: templates/js/translated/build.js:457 templates/js/translated/stock.js:2290
msgid "Build Order"
msgstr "Yapım İşi Emri"
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:140 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:92
#: order/templates/order/so_sidebar.html:13
@@ -670,40 +671,40 @@ msgstr "Yapım İşi Emri"
msgid "Build Orders"
msgstr "Yapım İşi Emirleri"
-#: build/models.py:198
+#: build/models.py:200
msgid "Build Order Reference"
msgstr "Yapım İşi Emri Referansı"
-#: build/models.py:199 order/models.py:210 order/models.py:536
-#: order/models.py:803 part/models.py:2638
+#: build/models.py:201 order/models.py:213 order/models.py:541
+#: order/models.py:812 part/models.py:2645
#: 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/translated/bom.js:547 templates/js/translated/build.js:1179
+#: templates/js/translated/bom.js:559 templates/js/translated/build.js:1179
#: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144
msgid "Reference"
msgstr "Referans"
-#: build/models.py:210
+#: build/models.py:212
msgid "Brief description of the build"
msgstr "Yapım işinin kısa açıklaması"
-#: build/models.py:219 build/templates/build/build_base.html:164
+#: build/models.py:221 build/templates/build/build_base.html:164
#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr "Üst Yapım İşi"
-#: build/models.py:220
+#: build/models.py:222
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:225 build/templates/build/build_base.html:77
+#: build/models.py:227 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
-#: order/models.py:856 order/models.py:930
-#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
-#: part/models.py:2204 part/models.py:2220 part/models.py:2239
-#: part/models.py:2256 part/models.py:2358 part/models.py:2480
-#: part/models.py:2613 part/models.py:2920 part/serializers.py:658
+#: order/models.py:876 order/models.py:950
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359
+#: part/models.py:2211 part/models.py:2227 part/models.py:2246
+#: part/models.py:2263 part/models.py:2365 part/models.py:2487
+#: part/models.py:2620 part/models.py:2927 part/serializers.py:658
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -713,205 +714,205 @@ msgstr "Bu yapım işinin tahsis edildiği yapım işi emri"
#: templates/InvenTree/search.html:80
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
-#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:326
-#: templates/js/translated/bom.js:505 templates/js/translated/build.js:680
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:338
+#: templates/js/translated/bom.js:517 templates/js/translated/build.js:680
#: templates/js/translated/build.js:1048 templates/js/translated/build.js:1419
#: templates/js/translated/build.js:1687 templates/js/translated/company.js:492
#: templates/js/translated/company.js:749 templates/js/translated/order.js:84
#: templates/js/translated/order.js:586 templates/js/translated/order.js:1004
#: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933
-#: templates/js/translated/order.js:2128 templates/js/translated/part.js:977
-#: templates/js/translated/part.js:1058 templates/js/translated/part.js:1225
-#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:719
-#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1526
-#: templates/js/translated/stock.js:2609
+#: templates/js/translated/order.js:2128 templates/js/translated/part.js:984
+#: templates/js/translated/part.js:1065 templates/js/translated/part.js:1232
+#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727
+#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1534
+#: templates/js/translated/stock.js:2767
msgid "Part"
msgstr "Parça"
-#: build/models.py:233
+#: build/models.py:235
msgid "Select part to build"
msgstr "Yapım işi için parça seçin"
-#: build/models.py:238
+#: build/models.py:240
msgid "Sales Order Reference"
msgstr "Satış Emri Referansı"
-#: build/models.py:242
+#: build/models.py:244
msgid "SalesOrder to which this build is allocated"
msgstr "Bu yapım işinin tahsis edildiği satış emri"
-#: build/models.py:247 templates/js/translated/build.js:1407
+#: build/models.py:249 templates/js/translated/build.js:1407
#: templates/js/translated/order.js:1564
msgid "Source Location"
msgstr "Kaynak Konum"
-#: build/models.py:251
+#: build/models.py:253
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:256
+#: build/models.py:258
msgid "Destination Location"
msgstr "Hedef Konum"
-#: build/models.py:260
+#: build/models.py:262
msgid "Select location where the completed items will be stored"
msgstr "Tamamlanmış ögelerin saklanacağı konumu seçiniz"
-#: build/models.py:264
+#: build/models.py:266
msgid "Build Quantity"
msgstr "Yapım İşi Miktarı"
-#: build/models.py:267
+#: build/models.py:269
msgid "Number of stock items to build"
msgstr "Yapım işi stok kalemlerinin sayısı"
-#: build/models.py:271
+#: build/models.py:273
msgid "Completed items"
msgstr "Tamamlanmış ögeler"
-#: build/models.py:273
+#: build/models.py:275
msgid "Number of stock items which have been completed"
msgstr "Tamamlanan stok kalemlerinin sayısı"
-#: build/models.py:277 part/templates/part/part_base.html:234
+#: build/models.py:279 part/templates/part/part_base.html:234
msgid "Build Status"
msgstr "Yapım İşi Durumu"
-#: build/models.py:281
+#: build/models.py:283
msgid "Build status code"
msgstr "Yapım işi durum kodu"
-#: build/models.py:285 stock/models.py:531
+#: build/models.py:287 stock/models.py:533
msgid "Batch Code"
msgstr "Sıra numarası"
-#: build/models.py:289
+#: build/models.py:291
msgid "Batch code for this build output"
msgstr "Yapım işi çıktısı için sıra numarası"
-#: build/models.py:292 order/models.py:126 part/models.py:967
+#: build/models.py:294 order/models.py:129 part/models.py:969
#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271
msgid "Creation Date"
msgstr "Oluşturulma tarihi"
-#: build/models.py:296 order/models.py:558
+#: build/models.py:298 order/models.py:563
msgid "Target completion date"
msgstr "Hedef tamamlama tarihi"
-#: build/models.py:297
+#: build/models.py:299
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/models.py:300 order/models.py:252
+#: build/models.py:302 order/models.py:255
#: templates/js/translated/build.js:1758
msgid "Completion Date"
msgstr "Tamamlama tarihi"
-#: build/models.py:306
+#: build/models.py:308
msgid "completed by"
msgstr "tamamlayan"
-#: build/models.py:314 templates/js/translated/build.js:1729
+#: build/models.py:316 templates/js/translated/build.js:1729
msgid "Issued by"
msgstr "Veren"
-#: build/models.py:315
+#: build/models.py:317
msgid "User who issued this build order"
msgstr "Bu yapım işi emrini veren kullanıcı"
-#: build/models.py:323 build/templates/build/build_base.html:185
-#: build/templates/build/detail.html:116 order/models.py:140
+#: build/models.py:325 build/templates/build/build_base.html:185
+#: build/templates/build/detail.html:116 order/models.py:143
#: order/templates/order/order_base.html:170
-#: order/templates/order/sales_order_base.html:182 part/models.py:971
+#: order/templates/order/sales_order_base.html:182 part/models.py:973
#: report/templates/report/inventree_build_order_base.html:159
#: templates/js/translated/build.js:1741 templates/js/translated/order.js:864
msgid "Responsible"
msgstr "Sorumlu"
-#: build/models.py:324
+#: build/models.py:326
msgid "User responsible for this build order"
msgstr "Bu yapım işi emrinden sorumlu kullanıcı"
-#: build/models.py:329 build/templates/build/detail.html:102
+#: build/models.py:331 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:525
+#: part/templates/part/part_base.html:354 stock/models.py:527
#: stock/templates/stock/item_base.html:373
msgid "External Link"
msgstr "Harici Bağlantı"
-#: build/models.py:334 build/serializers.py:201
+#: build/models.py:336 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
-#: order/models.py:144 order/models.py:805 order/models.py:1051
+#: order/models.py:147 order/models.py:814 order/models.py:1071
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:17 part/models.py:956
-#: part/templates/part/detail.html:120 part/templates/part/part_sidebar.html:50
+#: order/templates/order/so_sidebar.html:17 part/models.py:958
+#: part/templates/part/detail.html:137 part/templates/part/part_sidebar.html:54
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:597
-#: stock/models.py:1867 stock/models.py:1973 stock/serializers.py:332
-#: stock/serializers.py:639 stock/serializers.py:737 stock/serializers.py:869
-#: stock/templates/stock/stock_sidebar.html:21
-#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:711
+#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:599
+#: stock/models.py:1895 stock/models.py:2001 stock/serializers.py:332
+#: stock/serializers.py:640 stock/serializers.py:738 stock/serializers.py:870
+#: stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:723
#: templates/js/translated/company.js:845 templates/js/translated/order.js:1149
#: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280
-#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1795
+#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1803
msgid "Notes"
msgstr "Notlar"
-#: build/models.py:335
+#: build/models.py:337
msgid "Extra build notes"
msgstr "Yapım işi için ekstra notlar"
-#: build/models.py:710
+#: build/models.py:717
msgid "No build output specified"
msgstr "Yapım işi çıktısı belirtilmedi"
-#: build/models.py:713
+#: build/models.py:720
msgid "Build output is already completed"
msgstr "Yapım işi çıktısı zaten tamamlanmış"
-#: build/models.py:716
+#: build/models.py:723
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:1108
+#: build/models.py:1115
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:1117
+#: build/models.py:1124
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1127
+#: build/models.py:1134
msgid "Stock item is over-allocated"
msgstr "Stok kalemi fazladan tahsis edilmiş"
-#: build/models.py:1133 order/models.py:1167
+#: build/models.py:1140 order/models.py:1189
msgid "Allocation quantity must be greater than zero"
msgstr "Tahsis edilen miktar sıfırdan büyük olmalıdır"
-#: build/models.py:1139
+#: build/models.py:1146
msgid "Quantity must be 1 for serialized stock"
msgstr "Seri numaralı stok için miktar bir olmalı"
-#: build/models.py:1196
+#: build/models.py:1203
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1256 stock/templates/stock/item_base.html:345
+#: build/models.py:1263 stock/templates/stock/item_base.html:345
#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1660
#: templates/navbar.html:35
msgid "Build"
msgstr "Yapım İşi"
-#: build/models.py:1257
+#: build/models.py:1264
msgid "Build to allocate parts"
msgstr "Yapım işi için tahsis edilen parçalar"
-#: build/models.py:1273 build/serializers.py:388 order/serializers.py:690
-#: order/serializers.py:708 stock/serializers.py:577 stock/serializers.py:695
+#: build/models.py:1280 build/serializers.py:388 order/serializers.py:696
+#: order/serializers.py:714 stock/serializers.py:578 stock/serializers.py:696
#: stock/templates/stock/item_base.html:9
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:367
@@ -920,24 +921,24 @@ msgstr "Yapım işi için tahsis edilen parçalar"
#: templates/js/translated/order.js:85 templates/js/translated/order.js:1577
#: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837
#: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030
-#: templates/js/translated/stock.js:555 templates/js/translated/stock.js:720
-#: templates/js/translated/stock.js:2470
+#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728
+#: templates/js/translated/stock.js:2628
msgid "Stock Item"
msgstr "Stok Kalemi"
-#: build/models.py:1274
+#: build/models.py:1281
msgid "Source stock item"
msgstr "Kaynak stok kalemi"
-#: build/models.py:1287
+#: build/models.py:1294
msgid "Stock quantity to allocate to build"
msgstr "Yapım işi için tahsis edilen stok miktarı"
-#: build/models.py:1295
+#: build/models.py:1302
msgid "Install into"
msgstr "Kurulduğu yer"
-#: build/models.py:1296
+#: build/models.py:1303
msgid "Destination stock item"
msgstr "Hedef stok kalemi"
@@ -962,16 +963,16 @@ msgid "This build output is not fully allocated"
msgstr ""
#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294
-#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:730
-#: stock/serializers.py:971 stock/templates/stock/item_base.html:313
+#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:731
+#: stock/serializers.py:972 stock/templates/stock/item_base.html:313
#: templates/js/translated/barcode.js:384
#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:480
#: templates/js/translated/build.js:1087 templates/js/translated/order.js:508
#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955
#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044
-#: templates/js/translated/part.js:179 templates/js/translated/stock.js:556
-#: templates/js/translated/stock.js:721 templates/js/translated/stock.js:928
-#: templates/js/translated/stock.js:1676 templates/js/translated/stock.js:2411
+#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564
+#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936
+#: templates/js/translated/stock.js:1684 templates/js/translated/stock.js:2569
msgid "Location"
msgstr "Konum"
@@ -980,12 +981,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:137
-#: build/templates/build/detail.html:63 order/models.py:552
+#: build/templates/build/detail.html:63 order/models.py:557
#: order/serializers.py:247 stock/templates/stock/item_base.html:187
#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1716
#: templates/js/translated/order.js:591 templates/js/translated/order.js:840
-#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1651
-#: templates/js/translated/stock.js:2488 templates/js/translated/stock.js:2637
+#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:2646 templates/js/translated/stock.js:2795
msgid "Status"
msgstr "Durum"
@@ -1021,8 +1022,8 @@ msgstr "Gerekli yapım işi miktarı tamamlanmadı"
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:313 build/serializers.py:362 part/models.py:2753
-#: part/models.py:2912
+#: build/serializers.py:313 build/serializers.py:362 part/models.py:2760
+#: part/models.py:2919
msgid "BOM Item"
msgstr ""
@@ -1038,16 +1039,16 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:394 stock/serializers.py:584
+#: build/serializers.py:394 stock/serializers.py:585
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:408 order/models.py:277 order/serializers.py:240
-#: stock/models.py:365 stock/models.py:1077 stock/serializers.py:305
+#: build/serializers.py:408 order/models.py:280 order/serializers.py:240
+#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:450 order/serializers.py:741
+#: build/serializers.py:450 order/serializers.py:747
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1060,7 +1061,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:491 order/serializers.py:984
+#: build/serializers.py:491 order/serializers.py:990
msgid "Allocation items must be provided"
msgstr ""
@@ -1164,13 +1165,13 @@ msgid "Completed"
msgstr "Tamamlandı"
#: build/templates/build/build_base.html:171
-#: build/templates/build/detail.html:95 order/models.py:927
-#: order/models.py:1023 order/templates/order/sales_order_base.html:9
+#: build/templates/build/detail.html:95 order/models.py:947
+#: order/models.py:1043 order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/order.js:1218
+#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2304
msgid "Sales Order"
msgstr "Sipariş Emri"
@@ -1224,7 +1225,7 @@ msgstr "Stok Kaynağı"
msgid "Stock can be taken from any available location."
msgstr "Stok herhangi bir konumdan alınabilir."
-#: build/templates/build/detail.html:50 order/models.py:878 stock/forms.py:136
+#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:136
#: templates/js/translated/order.js:592 templates/js/translated/order.js:1138
msgid "Destination"
msgstr "Hedef"
@@ -1239,7 +1240,7 @@ msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:331
-#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2644
+#: templates/js/translated/stock.js:1673 templates/js/translated/stock.js:2802
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:238
msgid "Batch"
@@ -1343,9 +1344,9 @@ msgstr "Tamamlanmış Yapım İşi Çıktıları"
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:107
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:196
-#: part/templates/part/part_sidebar.html:48 stock/templates/stock/item.html:95
-#: stock/templates/stock/stock_sidebar.html:19
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:213
+#: part/templates/part/part_sidebar.html:52 stock/templates/stock/item.html:112
+#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr "Ekler"
@@ -1360,8 +1361,8 @@ msgstr "Yapım İşi Notları"
#: order/templates/order/purchase_order_detail.html:108
#: order/templates/order/sales_order_detail.html:127
#: order/templates/order/sales_order_detail.html:186
-#: part/templates/part/detail.html:124 stock/templates/stock/item.html:115
-#: stock/templates/stock/item.html:205
+#: part/templates/part/detail.html:141 stock/templates/stock/item.html:132
+#: stock/templates/stock/item.html:235
msgid "Edit Notes"
msgstr "Notları Düzenle"
@@ -1373,7 +1374,7 @@ msgstr ""
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:303
+#: build/templates/build/index.html:18 part/templates/part/detail.html:320
msgid "New Build Order"
msgstr "Yeni Yapım İşi Emri"
@@ -1453,23 +1454,23 @@ msgstr "Yapım işi çıktısı silindi"
msgid "Delete Build Order"
msgstr "Yapım İşi Emrini Sil"
-#: common/files.py:67
+#: common/files.py:65
msgid "Unsupported file format: {ext.upper()}"
msgstr "Desteklenmeyen dosya formatı: {ext.upper()}"
-#: common/files.py:69
+#: common/files.py:67
msgid "Error reading file (invalid encoding)"
msgstr "Dosya okurken hata (geçersiz biçim)"
-#: common/files.py:74
+#: common/files.py:72
msgid "Error reading file (invalid format)"
msgstr "Dosya okurken hata (geçersiz biçim)"
-#: common/files.py:76
+#: common/files.py:74
msgid "Error reading file (incorrect dimension)"
msgstr "Dosya okurken hata (hatalı ölçüler)"
-#: common/files.py:78
+#: common/files.py:76
msgid "Error reading file (data could be corrupted)"
msgstr "Dosya okurken hata (veri bozulmuş olabilir)"
@@ -1490,740 +1491,828 @@ msgstr "{name.title()} Dosya"
msgid "Select {name} file to upload"
msgstr "{name} dosyasını yüklemek için seçin"
-#: common/models.py:344 common/models.py:998 common/models.py:1206
-msgid "Settings key (must be unique - case insensitive"
+#: common/models.py:352
+msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:346
+#: common/models.py:354
msgid "Settings value"
msgstr ""
-#: common/models.py:380
+#: common/models.py:388
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:400
+#: common/models.py:408
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:411
+#: common/models.py:419
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:434
+#: common/models.py:442
msgid "Key string must be unique"
msgstr "Anahtar dizesi benzersiz olmalı"
-#: common/models.py:553
+#: common/models.py:561
msgid "No group"
msgstr ""
-#: common/models.py:595
+#: common/models.py:603
msgid "Restart required"
msgstr ""
-#: common/models.py:596
+#: common/models.py:604
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:603
+#: common/models.py:611
msgid "InvenTree Instance Name"
msgstr ""
-#: common/models.py:605
+#: common/models.py:613
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:609
+#: common/models.py:617
msgid "Use instance name"
msgstr ""
-#: common/models.py:610
+#: common/models.py:618
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:616 company/models.py:100 company/models.py:101
+#: common/models.py:624 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr "Şirket adı"
-#: common/models.py:617
+#: common/models.py:625
msgid "Internal company name"
msgstr ""
-#: common/models.py:622
+#: common/models.py:630
msgid "Base URL"
msgstr "Ana URL"
-#: common/models.py:623
+#: common/models.py:631
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:629
+#: common/models.py:637
msgid "Default Currency"
msgstr "Varsayılan Para Birimi"
-#: common/models.py:630
+#: common/models.py:638
msgid "Default currency"
msgstr "Varsayılan para birimi"
-#: common/models.py:636
+#: common/models.py:644
msgid "Download from URL"
msgstr "URL'den indir"
-#: common/models.py:637
+#: common/models.py:645
msgid "Allow download of remote images and files from external URL"
msgstr "Harici URL'den resim ve dosyaların indirilmesine izin ver"
-#: common/models.py:643 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:651 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr "Barkod Desteği"
-#: common/models.py:644
+#: common/models.py:652
msgid "Enable barcode scanner support"
msgstr "Barkod tarayıcı desteğini etkinleştir"
-#: common/models.py:650
+#: common/models.py:658
msgid "IPN Regex"
msgstr "DPN Regex"
-#: common/models.py:651
+#: common/models.py:659
msgid "Regular expression pattern for matching Part IPN"
msgstr "Parça DPN eşleştirmesi için Düzenli İfade Kalıbı (Regex)"
-#: common/models.py:655
+#: common/models.py:663
msgid "Allow Duplicate IPN"
msgstr "Yinelenen DPN'ye İzin Ver"
-#: common/models.py:656
+#: common/models.py:664
msgid "Allow multiple parts to share the same IPN"
msgstr "Birden çok parçanın aynı DPN'yi paylaşmasına izin ver"
-#: common/models.py:662
+#: common/models.py:670
msgid "Allow Editing IPN"
msgstr "DPN Düzenlemeye İzin Ver"
-#: common/models.py:663
+#: common/models.py:671
msgid "Allow changing the IPN value while editing a part"
msgstr "Parçayı düzenlerken DPN değiştirmeye izin ver"
-#: common/models.py:669
+#: common/models.py:677
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:670
+#: common/models.py:678
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:676
+#: common/models.py:684
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:677
+#: common/models.py:685
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:683
+#: common/models.py:691
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:684
+#: common/models.py:692
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:690
+#: common/models.py:698
msgid "Copy Category Parameter Templates"
msgstr "Kategori Paremetre Sablonu Kopyala"
-#: common/models.py:691
+#: common/models.py:699
msgid "Copy category parameter templates when creating a part"
msgstr "Parça oluştururken kategori parametre şablonlarını kopyala"
-#: common/models.py:697 part/models.py:2482 report/models.py:187
+#: common/models.py:705 part/models.py:2489 report/models.py:187
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:422
msgid "Template"
msgstr "Şablon"
-#: common/models.py:698
+#: common/models.py:706
msgid "Parts are templates by default"
msgstr "Parçaları varsayılan olan şablondur"
-#: common/models.py:704 part/models.py:919 templates/js/translated/bom.js:1068
+#: common/models.py:712 part/models.py:921 templates/js/translated/bom.js:1082
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:434
msgid "Assembly"
msgstr "Montaj"
-#: common/models.py:705
+#: common/models.py:713
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:711 part/models.py:925
+#: common/models.py:719 part/models.py:927
#: templates/js/translated/table_filters.js:438
msgid "Component"
msgstr "Bileşen"
-#: common/models.py:712
+#: common/models.py:720
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:718 part/models.py:936
+#: common/models.py:726 part/models.py:938
msgid "Purchaseable"
msgstr "Satın Alınabilir"
-#: common/models.py:719
+#: common/models.py:727
msgid "Parts are purchaseable by default"
msgstr "Parçalar varsayılan olarak satın alınabilir"
-#: common/models.py:725 part/models.py:941
+#: common/models.py:733 part/models.py:943
#: templates/js/translated/table_filters.js:446
msgid "Salable"
msgstr "Satılabilir"
-#: common/models.py:726
+#: common/models.py:734
msgid "Parts are salable by default"
msgstr "Parçalar varsayılan olarak satılabilir"
-#: common/models.py:732 part/models.py:931
+#: common/models.py:740 part/models.py:933
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
#: templates/js/translated/table_filters.js:450
msgid "Trackable"
msgstr "Takip Edilebilir"
-#: common/models.py:733
+#: common/models.py:741
msgid "Parts are trackable by default"
msgstr "Parçalar varsayılan olarak takip edilebilir"
-#: common/models.py:739 part/models.py:951
+#: common/models.py:747 part/models.py:953
#: part/templates/part/part_base.html:147
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr "Sanal"
-#: common/models.py:740
+#: common/models.py:748
msgid "Parts are virtual by default"
msgstr "Parçalar varsayılan olarak sanaldır"
-#: common/models.py:746
+#: common/models.py:754
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:747
+#: common/models.py:755
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:753
+#: common/models.py:761
msgid "Show Price in Forms"
msgstr "Formlarda Fiyat Göster"
-#: common/models.py:754
+#: common/models.py:762
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:765
+#: common/models.py:773
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:766
+#: common/models.py:774
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:772
+#: common/models.py:780
msgid "Show related parts"
msgstr "İlgili parçaları göster"
-#: common/models.py:773
+#: common/models.py:781
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:779
+#: common/models.py:787
msgid "Create initial stock"
msgstr ""
-#: common/models.py:780
+#: common/models.py:788
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:786
+#: common/models.py:794
msgid "Internal Prices"
msgstr ""
-#: common/models.py:787
+#: common/models.py:795
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:793
+#: common/models.py:801
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:794
+#: common/models.py:802
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:800
+#: common/models.py:808
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:801
+#: common/models.py:809
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:808
+#: common/models.py:816
msgid "Enable Reports"
msgstr ""
-#: common/models.py:809
+#: common/models.py:817
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:815 templates/stats.html:25
+#: common/models.py:823 templates/stats.html:25
msgid "Debug Mode"
msgstr "Hata Ayıklama Modu"
-#: common/models.py:816
+#: common/models.py:824
msgid "Generate reports in debug mode (HTML output)"
msgstr "Raporları hata ayıklama modunda üret (HTML çıktısı)"
-#: common/models.py:822
+#: common/models.py:830
msgid "Page Size"
msgstr "Sayfa Boyutu"
-#: common/models.py:823
+#: common/models.py:831
msgid "Default page size for PDF reports"
msgstr "PDF raporlar için varsayılan sayfa boyutu"
-#: common/models.py:833
+#: common/models.py:841
msgid "Test Reports"
msgstr "Test Raporları"
-#: common/models.py:834
+#: common/models.py:842
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:840
+#: common/models.py:848
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:841
+#: common/models.py:849
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:847
+#: common/models.py:855
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:848
+#: common/models.py:856
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:854
+#: common/models.py:862
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:855
+#: common/models.py:863
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:857
+#: common/models.py:865
msgid "days"
msgstr "günler"
-#: common/models.py:862
+#: common/models.py:870
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:863
+#: common/models.py:871
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:869
+#: common/models.py:877
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:870
+#: common/models.py:878
msgid "Enable ownership control over stock locations and items"
msgstr "Stok konumu ve ögeler üzerinde sahiplik kontrolünü etkinleştirin"
-#: common/models.py:876
-msgid "Group by Part"
-msgstr ""
-
-#: common/models.py:877
-msgid "Group stock items by part reference in table views"
-msgstr ""
-
-#: common/models.py:883
+#: common/models.py:884
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:884
+#: common/models.py:885
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:889
+#: common/models.py:890
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:890
+#: common/models.py:891
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:894
+#: common/models.py:895
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:895
+#: common/models.py:896
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:900
+#: common/models.py:901
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:901
+#: common/models.py:902
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:907
+#: common/models.py:908
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:908
+#: common/models.py:909
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:913
+#: common/models.py:914
msgid "Enable registration"
msgstr ""
-#: common/models.py:914
+#: common/models.py:915
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:919
+#: common/models.py:920
msgid "Enable SSO"
msgstr ""
-#: common/models.py:920
+#: common/models.py:921
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:925
+#: common/models.py:926
msgid "Email required"
msgstr ""
-#: common/models.py:926
+#: common/models.py:927
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:931
+#: common/models.py:932
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:932
+#: common/models.py:933
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:937
+#: common/models.py:938
msgid "Mail twice"
msgstr ""
-#: common/models.py:938
+#: common/models.py:939
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:943
+#: common/models.py:944
msgid "Password twice"
msgstr ""
-#: common/models.py:944
+#: common/models.py:945
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:949
+#: common/models.py:950
msgid "Group on signup"
msgstr ""
-#: common/models.py:950
+#: common/models.py:951
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:955
+#: common/models.py:956
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:956
+#: common/models.py:957
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:961
+#: common/models.py:964
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:962
+#: common/models.py:965
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:968
+#: common/models.py:971
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:969
+#: common/models.py:972
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:975
+#: common/models.py:978
msgid "Enable app integration"
msgstr ""
-#: common/models.py:976
+#: common/models.py:979
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:982
+#: common/models.py:985
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:983
+#: common/models.py:986
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1029
+#: common/models.py:992
+msgid "Enable event integration"
+msgstr ""
+
+#: common/models.py:993
+msgid "Enable plugins to respond to internal events"
+msgstr ""
+
+#: common/models.py:1008 common/models.py:1216
+msgid "Settings key (must be unique - case insensitive"
+msgstr ""
+
+#: common/models.py:1039
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1030
+#: common/models.py:1040
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1035
+#: common/models.py:1045
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1036
+#: common/models.py:1046
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1041
+#: common/models.py:1051
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1042
+#: common/models.py:1052
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1047
+#: common/models.py:1057
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1048
+#: common/models.py:1058
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1054
+#: common/models.py:1064
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1055
+#: common/models.py:1065
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1070
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1061
+#: common/models.py:1071
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1066
+#: common/models.py:1076
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1067
+#: common/models.py:1077
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1072
+#: common/models.py:1082
msgid "Show low stock"
msgstr ""
-#: common/models.py:1073
+#: common/models.py:1083
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1078
+#: common/models.py:1088
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1079
+#: common/models.py:1089
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1084
+#: common/models.py:1094
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1085
+#: common/models.py:1095
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1090
+#: common/models.py:1100
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1091
+#: common/models.py:1101
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1096
+#: common/models.py:1106
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1097
+#: common/models.py:1107
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1102
+#: common/models.py:1112
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1103
+#: common/models.py:1113
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1108
+#: common/models.py:1118
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1109
+#: common/models.py:1119
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1114
+#: common/models.py:1124
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1115
+#: common/models.py:1125
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1120
+#: common/models.py:1130
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1121
+#: common/models.py:1131
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1136
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1127
+#: common/models.py:1137
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1142
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1143
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1149
msgid "Inline label display"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1150
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1156
msgid "Inline report display"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1157
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1163
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1164
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1170
msgid "Search Show Stock"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1171
msgid "Display stock levels in search preview window"
msgstr ""
-#: common/models.py:1167
+#: common/models.py:1177
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1178
msgid "Hide inactive parts in search preview window"
msgstr ""
-#: common/models.py:1174
+#: common/models.py:1184
msgid "Show Quantity in Forms"
msgstr "Formlarda Miktarı Göster"
-#: common/models.py:1175
+#: common/models.py:1185
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1181
+#: common/models.py:1191
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1182
+#: common/models.py:1192
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1188
+#: common/models.py:1198
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1199
msgid "InvenTree navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1254 company/forms.py:43
+#: common/models.py:1264 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1261 company/serializers.py:264
+#: common/models.py:1271 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:909 templates/js/translated/part.js:1860
+#: templates/js/translated/part.js:915 templates/js/translated/part.js:1867
msgid "Price"
msgstr "Fiyat"
-#: common/models.py:1262
+#: common/models.py:1272
msgid "Unit price at specified quantity"
msgstr ""
+#: common/models.py:1429 common/models.py:1568
+msgid "Endpoint"
+msgstr ""
+
+#: common/models.py:1430
+msgid "Endpoint at which this webhook is received"
+msgstr ""
+
+#: common/models.py:1439
+msgid "Name for this webhook"
+msgstr ""
+
+#: common/models.py:1444 part/models.py:948 plugin/models.py:46
+#: templates/js/translated/table_filters.js:34
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:295
+#: templates/js/translated/table_filters.js:417
+msgid "Active"
+msgstr "Aktif"
+
+#: common/models.py:1445
+msgid "Is this webhook active"
+msgstr ""
+
+#: common/models.py:1459
+msgid "Token"
+msgstr ""
+
+#: common/models.py:1460
+msgid "Token for access"
+msgstr ""
+
+#: common/models.py:1467
+msgid "Secret"
+msgstr ""
+
+#: common/models.py:1468
+msgid "Shared secret for HMAC"
+msgstr ""
+
+#: common/models.py:1535
+msgid "Message ID"
+msgstr ""
+
+#: common/models.py:1536
+msgid "Unique identifier for this message"
+msgstr ""
+
+#: common/models.py:1544
+msgid "Host"
+msgstr ""
+
+#: common/models.py:1545
+msgid "Host from which this message was received"
+msgstr ""
+
+#: common/models.py:1552
+msgid "Header"
+msgstr ""
+
+#: common/models.py:1553
+msgid "Header of this message"
+msgstr ""
+
+#: common/models.py:1559
+msgid "Body"
+msgstr ""
+
+#: common/models.py:1560
+msgid "Body of this message"
+msgstr ""
+
+#: common/models.py:1569
+msgid "Endpoint on which this message was received"
+msgstr ""
+
+#: common/models.py:1574
+msgid "Worked on"
+msgstr ""
+
+#: common/models.py:1575
+msgid "Was the work on this message finished?"
+msgstr ""
+
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
#: part/templates/part/bom_upload/upload_file.html:52
-#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
-#: part/views.py:764
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:213
+#: part/views.py:773
msgid "Upload File"
msgstr "Dosya Yükle"
#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
-#: part/views.py:765
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:214
+#: part/views.py:774
msgid "Match Fields"
msgstr "Alanları Eşleştir"
@@ -2315,7 +2404,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:838
+#: company/models.py:139 part/models.py:840
msgid "Image"
msgstr "Resim"
@@ -2352,8 +2441,8 @@ msgstr "Para birimi"
msgid "Default currency used for this company"
msgstr "Bu şirket için varsayılan para birimi"
-#: company/models.py:320 company/models.py:535 stock/models.py:469
-#: stock/templates/stock/item_base.html:142
+#: company/models.py:320 company/models.py:535 stock/models.py:471
+#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:328
msgid "Base Part"
msgstr "Temel Parça"
@@ -2380,7 +2469,7 @@ msgstr "Üretici seçin"
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:818 templates/js/translated/order.js:1038
-#: templates/js/translated/part.js:245 templates/js/translated/part.js:889
+#: templates/js/translated/part.js:245 templates/js/translated/part.js:895
msgid "MPN"
msgstr "ÜPN"
@@ -2409,8 +2498,8 @@ msgstr "Parametre adı"
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1960 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:709 templates/js/translated/stock.js:1296
+#: stock/models.py:1988 templates/js/translated/company.js:647
+#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1304
msgid "Value"
msgstr "Değer"
@@ -2418,10 +2507,10 @@ msgstr "Değer"
msgid "Parameter value"
msgstr "Parametre değeri"
-#: company/models.py:429 part/models.py:913 part/models.py:2450
+#: company/models.py:429 part/models.py:915 part/models.py:2457
#: part/templates/part/part_base.html:288
-#: templates/InvenTree/settings/settings.html:284
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:715
+#: templates/InvenTree/settings/settings.html:287
+#: templates/js/translated/company.js:653 templates/js/translated/part.js:721
msgid "Units"
msgstr ""
@@ -2434,13 +2523,13 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:78
-#: company/templates/company/supplier_part.html:87 order/models.py:224
+#: company/templates/company/supplier_part.html:87 order/models.py:227
#: order/templates/order/order_base.html:112
-#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
-#: part/bom.py:247 stock/templates/stock/item_base.html:397
+#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237
+#: part/bom.py:265 stock/templates/stock/item_base.html:397
#: templates/js/translated/company.js:337
#: templates/js/translated/company.js:774 templates/js/translated/order.js:823
-#: templates/js/translated/part.js:215 templates/js/translated/part.js:857
+#: templates/js/translated/part.js:215 templates/js/translated/part.js:863
#: templates/js/translated/table_filters.js:393
msgid "Supplier"
msgstr "Tedarikçi"
@@ -2450,8 +2539,8 @@ msgid "Select supplier"
msgstr "Tedarikçi seçin"
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:1025
-#: templates/js/translated/part.js:226 templates/js/translated/part.js:875
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1025
+#: templates/js/translated/part.js:226 templates/js/translated/part.js:881
msgid "SKU"
msgstr "SKU"
@@ -2472,22 +2561,22 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:119
-#: part/models.py:2641 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2648 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr "Not"
-#: company/models.py:580 part/models.py:1779
+#: company/models.py:580 part/models.py:1781
msgid "base cost"
msgstr "temel maliyet"
-#: company/models.py:580 part/models.py:1779
+#: company/models.py:580 part/models.py:1781
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:493 stock/templates/stock/item_base.html:338
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1791
+#: stock/models.py:495 stock/templates/stock/item_base.html:338
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1799
msgid "Packaging"
msgstr "Paketleme"
@@ -2495,7 +2584,7 @@ msgstr "Paketleme"
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1781
+#: company/models.py:584 part/models.py:1783
msgid "multiple"
msgstr "çoklu"
@@ -2554,12 +2643,12 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:83 order/models.py:547
-#: order/templates/order/sales_order_base.html:115 stock/models.py:512
-#: stock/models.py:513 stock/serializers.py:625
+#: company/templates/company/company_base.html:83 order/models.py:552
+#: order/templates/order/sales_order_base.html:115 stock/models.py:514
+#: stock/models.py:515 stock/serializers.py:626
#: stock/templates/stock/item_base.html:290
#: templates/js/translated/company.js:329 templates/js/translated/order.js:1240
-#: templates/js/translated/stock.js:2452
+#: templates/js/translated/stock.js:2610
#: templates/js/translated/table_filters.js:397
msgid "Customer"
msgstr "Müşteri"
@@ -2590,7 +2679,7 @@ msgstr "Yeni tedarikçi parçası oluştur"
#: company/templates/company/detail.html:20
#: company/templates/company/manufacturer_part.html:118
-#: part/templates/part/detail.html:336
+#: part/templates/part/detail.html:353
msgid "New Supplier Part"
msgstr "Yeni Tedarikçi Parçası"
@@ -2598,8 +2687,8 @@ msgstr "Yeni Tedarikçi Parçası"
#: company/templates/company/detail.html:79
#: company/templates/company/manufacturer_part.html:127
#: company/templates/company/manufacturer_part.html:156
-#: part/templates/part/category.html:171 part/templates/part/detail.html:345
-#: part/templates/part/detail.html:374
+#: part/templates/part/category.html:171 part/templates/part/detail.html:362
+#: part/templates/part/detail.html:391
msgid "Options"
msgstr ""
@@ -2627,7 +2716,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:364
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:381
msgid "New Manufacturer Part"
msgstr ""
@@ -2641,7 +2730,7 @@ msgstr "Tedarikçi Stoku"
#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:68 part/templates/part/part_sidebar.html:33
+#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
@@ -2663,7 +2752,7 @@ msgstr "Yeni Satın Alma Emri"
#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:91 part/templates/part/part_sidebar.html:37
+#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:41
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
@@ -2691,13 +2780,13 @@ msgstr ""
#: company/templates/company/detail.html:384
#: company/templates/company/manufacturer_part.html:215
-#: part/templates/part/detail.html:418
+#: part/templates/part/detail.html:435
msgid "Delete Supplier Parts?"
msgstr ""
#: company/templates/company/detail.html:385
#: company/templates/company/manufacturer_part.html:216
-#: part/templates/part/detail.html:419
+#: part/templates/part/detail.html:436
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2714,7 +2803,7 @@ msgstr "Üreticiler"
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:34
#: company/templates/company/supplier_part.html:159
-#: part/templates/part/detail.html:71 part/templates/part/part_base.html:76
+#: part/templates/part/detail.html:88 part/templates/part/part_base.html:76
msgid "Order part"
msgstr "Parça siparişi"
@@ -2735,34 +2824,34 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:114
#: company/templates/company/supplier_part.html:15 company/views.py:49
-#: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163
+#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:163
#: templates/InvenTree/search.html:188 templates/navbar.html:45
msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
-#: part/templates/part/detail.html:347
+#: part/templates/part/detail.html:364
msgid "Delete supplier parts"
msgstr "Tedarikçi parçalarını sil"
#: company/templates/company/manufacturer_part.html:129
#: company/templates/company/manufacturer_part.html:158
#: company/templates/company/manufacturer_part.html:254
-#: part/templates/part/detail.html:347 part/templates/part/detail.html:376
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:393
#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31
-#: users/models.py:210
+#: users/models.py:212
msgid "Delete"
msgstr ""
#: company/templates/company/manufacturer_part.html:143
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:17
-#: part/templates/part/detail.html:170 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:187 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:147
-#: part/templates/part/detail.html:175
+#: part/templates/part/detail.html:192
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
@@ -2773,7 +2862,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:191
-#: part/templates/part/detail.html:862
+#: part/templates/part/detail.html:892
msgid "Add Parameter"
msgstr ""
@@ -2802,9 +2891,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:477
+#: company/templates/company/supplier_part.html:24 stock/models.py:479
#: stock/templates/stock/item_base.html:402
-#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1748
+#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1756
msgid "Supplier Part"
msgstr "Tedarikçi Parçası"
@@ -2830,7 +2919,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:167
-#: templates/js/translated/stock.js:360
+#: templates/js/translated/stock.js:368
msgid "New Stock Item"
msgstr ""
@@ -2840,7 +2929,7 @@ msgid "Supplier Part Orders"
msgstr "Tedarikçi Parçası Emirleri"
#: company/templates/company/supplier_part.html:160
-#: part/templates/part/detail.html:72
+#: part/templates/part/detail.html:89
msgid "Order Part"
msgstr ""
@@ -2851,7 +2940,7 @@ msgstr "Fiyat Bilgisi"
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1619
+#: part/templates/part/prices.html:271 part/views.py:1628
msgid "Add Price Break"
msgstr ""
@@ -2859,11 +2948,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1681
+#: company/templates/company/supplier_part.html:224 part/views.py:1690
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1667
+#: company/templates/company/supplier_part.html:238 part/views.py:1676
msgid "Edit Price Break"
msgstr ""
@@ -2881,10 +2970,10 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:150
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/bom.js:328 templates/js/translated/part.js:489
-#: templates/js/translated/part.js:624 templates/js/translated/part.js:1118
-#: templates/js/translated/part.js:1279 templates/js/translated/stock.js:927
-#: templates/js/translated/stock.js:1580 templates/navbar.html:28
+#: templates/js/translated/bom.js:340 templates/js/translated/part.js:495
+#: templates/js/translated/part.js:630 templates/js/translated/part.js:1125
+#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:935
+#: templates/js/translated/stock.js:1588 templates/navbar.html:28
msgid "Stock"
msgstr "Stok"
@@ -2907,8 +2996,8 @@ msgstr "Fiyatlandırma"
#: stock/templates/stock/location.html:151
#: stock/templates/stock/location.html:163
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2351
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2509
+#: templates/stats.html:105 templates/stats.html:114 users/models.py:43
msgid "Stock Items"
msgstr "Stok Kalemleri"
@@ -2937,20 +3026,20 @@ msgstr "Şirketler"
msgid "New Company"
msgstr "Yeni Şirket"
-#: company/views.py:129 part/views.py:584
+#: company/views.py:129 part/views.py:593
msgid "Download Image"
msgstr "Resmi İndirin"
-#: company/views.py:158 part/views.py:616
+#: company/views.py:158 part/views.py:625
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:623
+#: company/views.py:165 part/views.py:632
#, python-brace-format
msgid "Invalid response: {code}"
msgstr "Geçersiz yanıt: {code}"
-#: company/views.py:174 part/views.py:632
+#: company/views.py:174 part/views.py:641
msgid "Supplied URL is not a valid image file"
msgstr "Sağlanan URL geçerli bir resim dosyası değil"
@@ -3036,282 +3125,282 @@ msgstr "Siparişi tamamlandı olarak işaretle"
msgid "Cancel order"
msgstr "Siparişi iptal et"
-#: order/models.py:122
+#: order/models.py:125
msgid "Order description"
msgstr "Sipariş açıklaması"
-#: order/models.py:124
+#: order/models.py:127
msgid "Link to external page"
msgstr "Harici sayfaya bağlantı"
-#: order/models.py:132
+#: order/models.py:135
msgid "Created By"
msgstr "Oluşturan"
-#: order/models.py:139
+#: order/models.py:142
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:144
+#: order/models.py:147
msgid "Order notes"
msgstr "Sipariş notları"
-#: order/models.py:211 order/models.py:537
+#: order/models.py:214 order/models.py:542
msgid "Order reference"
msgstr "Sipariş referansı"
-#: order/models.py:216 order/models.py:552
+#: order/models.py:219 order/models.py:557
msgid "Purchase order status"
msgstr ""
-#: order/models.py:225
+#: order/models.py:228
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:228 order/templates/order/order_base.html:118
+#: order/models.py:231 order/templates/order/order_base.html:118
#: templates/js/translated/order.js:832
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:228
+#: order/models.py:231
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:235
+#: order/models.py:238
msgid "received by"
msgstr ""
-#: order/models.py:240
+#: order/models.py:243
msgid "Issue Date"
msgstr ""
-#: order/models.py:241
+#: order/models.py:244
msgid "Date order was issued"
msgstr ""
-#: order/models.py:246
+#: order/models.py:249
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:247
+#: order/models.py:250
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:253
+#: order/models.py:256
msgid "Date order was completed"
msgstr ""
-#: order/models.py:282
+#: order/models.py:285
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:411
-msgid "Quantity must be an integer"
-msgstr ""
-
-#: order/models.py:415
+#: order/models.py:420
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:548
+#: order/models.py:553
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:554
+#: order/models.py:559
msgid "Customer Reference "
msgstr ""
-#: order/models.py:554
+#: order/models.py:559
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:559
+#: order/models.py:564
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:562 order/models.py:1028
+#: order/models.py:567 order/models.py:1048
#: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429
msgid "Shipment Date"
msgstr ""
-#: order/models.py:569
+#: order/models.py:574
msgid "shipped by"
msgstr ""
-#: order/models.py:635
+#: order/models.py:640
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:639
+#: order/models.py:644
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:642
+#: order/models.py:647
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:645
+#: order/models.py:650
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:797
+#: order/models.py:806
msgid "Item quantity"
msgstr ""
-#: order/models.py:803
+#: order/models.py:812
msgid "Line item reference"
msgstr ""
-#: order/models.py:805
+#: order/models.py:814
msgid "Line item notes"
msgstr ""
-#: order/models.py:835 order/models.py:926 order/models.py:1022
-#: templates/js/translated/order.js:1820
+#: order/models.py:842
+msgid "Supplier part must match supplier"
+msgstr ""
+
+#: order/models.py:855 order/models.py:946 order/models.py:1042
+#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2271
msgid "Order"
msgstr ""
-#: order/models.py:836 order/templates/order/order_base.html:9
+#: order/models.py:856 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:352
-#: templates/js/translated/order.js:801 templates/js/translated/part.js:832
-#: templates/js/translated/stock.js:1725 templates/js/translated/stock.js:2433
+#: templates/js/translated/order.js:801 templates/js/translated/part.js:838
+#: templates/js/translated/stock.js:1733 templates/js/translated/stock.js:2591
msgid "Purchase Order"
msgstr ""
-#: order/models.py:857
+#: order/models.py:877
msgid "Supplier part"
msgstr ""
-#: order/models.py:864 order/templates/order/order_base.html:163
+#: order/models.py:884 order/templates/order/order_base.html:163
#: templates/js/translated/order.js:589 templates/js/translated/order.js:1118
-#: templates/js/translated/part.js:904 templates/js/translated/part.js:930
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:937
#: templates/js/translated/table_filters.js:317
msgid "Received"
msgstr ""
-#: order/models.py:865
+#: order/models.py:885
msgid "Number of items received"
msgstr ""
-#: order/models.py:872 part/templates/part/prices.html:176 stock/models.py:606
+#: order/models.py:892 part/templates/part/prices.html:176 stock/models.py:608
#: stock/serializers.py:170 stock/templates/stock/item_base.html:359
-#: templates/js/translated/stock.js:1779
+#: templates/js/translated/stock.js:1787
msgid "Purchase Price"
msgstr ""
-#: order/models.py:873
+#: order/models.py:893
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:881
+#: order/models.py:901
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:936 part/templates/part/part_pricing.html:112
+#: order/models.py:956 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:937
+#: order/models.py:957
msgid "Unit sale price"
msgstr ""
-#: order/models.py:942
+#: order/models.py:962
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1029
+#: order/models.py:1049
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1036
+#: order/models.py:1056
msgid "Checked By"
msgstr ""
-#: order/models.py:1037
+#: order/models.py:1057
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1045
+#: order/models.py:1065
msgid "Shipment number"
msgstr ""
-#: order/models.py:1052
+#: order/models.py:1072
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1059
+#: order/models.py:1079
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1060
+#: order/models.py:1080
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1070
+#: order/models.py:1090
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1073
+#: order/models.py:1093
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1149 order/models.py:1151
+#: order/models.py:1171 order/models.py:1173
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1155
+#: order/models.py:1177
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1157
+#: order/models.py:1179
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1160
+#: order/models.py:1182
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Tahsis miktarı stok miktarını aşamaz"
-#: order/models.py:1164
+#: order/models.py:1186
msgid "StockItem is over-allocated"
msgstr "Stok kalemi fazladan tahsis edilmiş"
-#: order/models.py:1170 order/serializers.py:734
+#: order/models.py:1192 order/serializers.py:740
msgid "Quantity must be 1 for serialized stock item"
msgstr "Seri numaralı stok kalemi için miktar bir olmalı"
-#: order/models.py:1173
+#: order/models.py:1195
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1174
+#: order/models.py:1196
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1182
+#: order/models.py:1204
msgid "Line"
msgstr ""
-#: order/models.py:1190 order/serializers.py:825 order/serializers.py:953
-#: templates/js/translated/model_renderers.js:251
+#: order/models.py:1212 order/serializers.py:831 order/serializers.py:959
+#: templates/js/translated/model_renderers.js:285
msgid "Shipment"
msgstr ""
-#: order/models.py:1191
+#: order/models.py:1213
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1203
+#: order/models.py:1225
msgid "Item"
msgstr ""
-#: order/models.py:1204
+#: order/models.py:1226
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1207
+#: order/models.py:1229
msgid "Enter stock allocation quantity"
msgstr "Stok tahsis miktarını girin"
@@ -3319,7 +3408,7 @@ msgstr "Stok tahsis miktarını girin"
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:211 order/serializers.py:790
+#: order/serializers.py:211 order/serializers.py:796
msgid "Line Item"
msgstr ""
@@ -3355,39 +3444,39 @@ msgstr ""
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:581
+#: order/serializers.py:587
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:649
+#: order/serializers.py:655
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:699 order/serializers.py:802
+#: order/serializers.py:705 order/serializers.py:808
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:721
+#: order/serializers.py:727
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:815
+#: order/serializers.py:821
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:839 order/serializers.py:964
+#: order/serializers.py:845 order/serializers.py:970
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:842 order/serializers.py:967
+#: order/serializers.py:848 order/serializers.py:973
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:894
+#: order/serializers.py:900
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:904
+#: order/serializers.py:910
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3441,6 +3530,7 @@ msgstr ""
#: order/templates/order/order_base.html:94
#: order/templates/order/sales_order_base.html:89
+#: templates/js/translated/stock.js:2327
msgid "Order Status"
msgstr ""
@@ -3538,7 +3628,7 @@ msgstr ""
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/build.js:300 templates/js/translated/build.js:1311
#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488
-#: templates/js/translated/stock.js:593 templates/js/translated/stock.js:761
+#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769
msgid "Remove row"
msgstr ""
@@ -3729,7 +3819,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:48
-#: templates/js/translated/bom.js:720 templates/js/translated/build.js:1243
+#: templates/js/translated/bom.js:732 templates/js/translated/build.js:1243
msgid "Actions"
msgstr "İşlemler"
@@ -3832,447 +3922,448 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:125 part/models.py:81 part/models.py:847
+#: part/bom.py:125 part/models.py:83 part/models.py:849
#: part/templates/part/category.html:108 part/templates/part/part_base.html:338
msgid "Default Location"
msgstr "Varsayılan Konum"
-#: part/bom.py:126 part/templates/part/part_base.html:185
+#: part/bom.py:126 templates/email/low_stock_notification.html:17
+msgid "Total Stock"
+msgstr ""
+
+#: part/bom.py:127 part/templates/part/part_base.html:185
msgid "Available Stock"
msgstr ""
-#: part/forms.py:85
+#: part/bom.py:128 part/templates/part/part_base.html:203
+#: templates/js/translated/part.js:1301
+msgid "On Order"
+msgstr ""
+
+#: part/forms.py:84
msgid "Select part category"
msgstr ""
-#: part/forms.py:122
+#: part/forms.py:121
msgid "Add parameter template to same level categories"
msgstr "Parametre şablonunu aynı seviyedeki kategorilere ekle"
-#: part/forms.py:126
+#: part/forms.py:125
msgid "Add parameter template to all categories"
msgstr "Parametre şablonunu tüm kategorilere ekle"
-#: part/forms.py:146
+#: part/forms.py:145
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:82
+#: part/models.py:84
msgid "Default location for parts in this category"
msgstr "Bu kategori içindeki parçalar için varsayılan konum"
-#: part/models.py:85
+#: part/models.py:87
msgid "Default keywords"
msgstr ""
-#: part/models.py:85
+#: part/models.py:87
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:95 part/models.py:2526 part/templates/part/category.html:15
+#: part/models.py:97 part/models.py:2533 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:96 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/stats.html:84
+#: part/models.py:98 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/stats.html:96
#: users/models.py:40
msgid "Part Categories"
msgstr "Parça Kategorileri"
-#: part/models.py:358 part/templates/part/cat_link.html:3
+#: part/models.py:360 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:17 part/templates/part/category.html:133
#: part/templates/part/category.html:153
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:37
-#: templates/js/translated/part.js:1656 templates/navbar.html:21
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+#: templates/js/translated/part.js:1663 templates/navbar.html:21
+#: templates/stats.html:92 templates/stats.html:101 users/models.py:41
msgid "Parts"
msgstr "Parçalar"
-#: part/models.py:450
+#: part/models.py:452
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:500 part/models.py:512
+#: part/models.py:502 part/models.py:514
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:642
+#: part/models.py:644
msgid "Next available serial numbers are"
msgstr "Sonraki kullanılabilir seri numaraları"
-#: part/models.py:646
+#: part/models.py:648
msgid "Next available serial number is"
msgstr "Sonraki müsait seri numarası"
-#: part/models.py:651
+#: part/models.py:653
msgid "Most recent serial number is"
msgstr "En son seri numarası"
-#: part/models.py:746
+#: part/models.py:748
msgid "Duplicate IPN not allowed in part settings"
msgstr "Yinelenen DPN'ye parça ayarlarında izin verilmiyor"
-#: part/models.py:771
+#: part/models.py:773
msgid "Part name"
msgstr "Parça adı"
-#: part/models.py:778
+#: part/models.py:780
msgid "Is Template"
msgstr "Şablon Mu"
-#: part/models.py:779
+#: part/models.py:781
msgid "Is this part a template part?"
msgstr "Bu parça bir şablon parçası mı?"
-#: part/models.py:789
+#: part/models.py:791
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:790
+#: part/models.py:792
msgid "Variant Of"
msgstr "Çeşidi"
-#: part/models.py:796
+#: part/models.py:798
msgid "Part description"
msgstr "Parça açıklaması"
-#: part/models.py:801 part/templates/part/category.html:86
+#: part/models.py:803 part/templates/part/category.html:86
#: part/templates/part/part_base.html:302
msgid "Keywords"
msgstr "Anahtar kelimeler"
-#: part/models.py:802
+#: part/models.py:804
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:809 part/models.py:2276 part/models.py:2525
+#: part/models.py:811 part/models.py:2283 part/models.py:2532
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:183
-#: templates/js/translated/part.js:1261
+#: templates/InvenTree/settings/settings.html:186
+#: templates/js/translated/part.js:1268
msgid "Category"
msgstr ""
-#: part/models.py:810
+#: part/models.py:812
msgid "Part category"
msgstr ""
-#: part/models.py:815 part/templates/part/part_base.html:274
-#: templates/js/translated/part.js:612 templates/js/translated/part.js:1214
-#: templates/js/translated/stock.js:1552
+#: part/models.py:817 part/templates/part/part_base.html:274
+#: templates/js/translated/part.js:618 templates/js/translated/part.js:1221
+#: templates/js/translated/stock.js:1560
msgid "IPN"
msgstr "DPN"
-#: part/models.py:816
+#: part/models.py:818
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:822
+#: part/models.py:824
msgid "Part revision or version number"
msgstr "Parça revizyon veya versiyon numarası"
-#: part/models.py:823 part/templates/part/part_base.html:281
-#: report/models.py:200 templates/js/translated/part.js:616
+#: part/models.py:825 part/templates/part/part_base.html:281
+#: report/models.py:200 templates/js/translated/part.js:622
msgid "Revision"
msgstr "Revizyon"
-#: part/models.py:845
+#: part/models.py:847
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:892 part/templates/part/part_base.html:347
+#: part/models.py:894 part/templates/part/part_base.html:347
msgid "Default Supplier"
msgstr "Varsayılan Tedarikçi"
-#: part/models.py:893
+#: part/models.py:895
msgid "Default supplier part"
msgstr "Varsayılan tedarikçi parçası"
-#: part/models.py:900
+#: part/models.py:902
msgid "Default Expiry"
msgstr ""
-#: part/models.py:901
+#: part/models.py:903
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:906 part/templates/part/part_base.html:196
+#: part/models.py:908 part/templates/part/part_base.html:196
msgid "Minimum Stock"
msgstr "Minimum Stok"
-#: part/models.py:907
+#: part/models.py:909
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:914
+#: part/models.py:916
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:920
+#: part/models.py:922
msgid "Can this part be built from other parts?"
msgstr "Bu parça diğer parçalardan yapılabilir mi?"
-#: part/models.py:926
+#: part/models.py:928
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:932
+#: part/models.py:934
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:937
+#: part/models.py:939
msgid "Can this part be purchased from external suppliers?"
msgstr "Bu parça dış tedarikçilerden satın alınabilir mi?"
-#: part/models.py:942
+#: part/models.py:944
msgid "Can this part be sold to customers?"
msgstr "Bu parça müşterilere satılabilir mi?"
-#: part/models.py:946 plugin/models.py:46
-#: templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:96
-#: templates/js/translated/table_filters.js:295
-#: templates/js/translated/table_filters.js:417
-msgid "Active"
-msgstr "Aktif"
-
-#: part/models.py:947
+#: part/models.py:949
msgid "Is this part active?"
msgstr "Bu parça aktif mi?"
-#: part/models.py:952
+#: part/models.py:954
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:957
+#: part/models.py:959
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:960
+#: part/models.py:962
msgid "BOM checksum"
msgstr ""
-#: part/models.py:960
+#: part/models.py:962
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:963
+#: part/models.py:965
msgid "BOM checked by"
msgstr ""
-#: part/models.py:965
+#: part/models.py:967
msgid "BOM checked date"
msgstr ""
-#: part/models.py:969
+#: part/models.py:971
msgid "Creation User"
msgstr "Oluşturan Kullanıcı"
-#: part/models.py:1781
+#: part/models.py:1783
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2326
+#: part/models.py:2333
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:2343
+#: part/models.py:2350
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2363 templates/js/translated/part.js:1707
-#: templates/js/translated/stock.js:1276
+#: part/models.py:2370 templates/js/translated/part.js:1714
+#: templates/js/translated/stock.js:1284
msgid "Test Name"
msgstr "Test Adı"
-#: part/models.py:2364
+#: part/models.py:2371
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2376
msgid "Test Description"
msgstr "Test Açıklaması"
-#: part/models.py:2370
+#: part/models.py:2377
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2375 templates/js/translated/part.js:1716
+#: part/models.py:2382 templates/js/translated/part.js:1723
#: templates/js/translated/table_filters.js:281
msgid "Required"
msgstr "Gerekli"
-#: part/models.py:2376
+#: part/models.py:2383
msgid "Is this test required to pass?"
msgstr "Testi geçmesi için bu gerekli mi?"
-#: part/models.py:2381 templates/js/translated/part.js:1724
+#: part/models.py:2388 templates/js/translated/part.js:1731
msgid "Requires Value"
msgstr ""
-#: part/models.py:2382
+#: part/models.py:2389
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2387 templates/js/translated/part.js:1731
+#: part/models.py:2394 templates/js/translated/part.js:1738
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2388
+#: part/models.py:2395
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2399
+#: part/models.py:2406
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2435
+#: part/models.py:2442
msgid "Parameter template name must be unique"
msgstr "Parametre şablon adı benzersiz olmalıdır"
-#: part/models.py:2443
+#: part/models.py:2450
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2450
+#: part/models.py:2457
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2480
+#: part/models.py:2487
msgid "Parent Part"
msgstr ""
-#: part/models.py:2482 part/models.py:2531 part/models.py:2532
-#: templates/InvenTree/settings/settings.html:178
+#: part/models.py:2489 part/models.py:2538 part/models.py:2539
+#: templates/InvenTree/settings/settings.html:181
msgid "Parameter Template"
msgstr "Parametre Şablonu"
-#: part/models.py:2484
+#: part/models.py:2491
msgid "Data"
msgstr ""
-#: part/models.py:2484
+#: part/models.py:2491
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2536 templates/InvenTree/settings/settings.html:187
+#: part/models.py:2543 templates/InvenTree/settings/settings.html:190
msgid "Default Value"
msgstr ""
-#: part/models.py:2537
+#: part/models.py:2544
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2614
+#: part/models.py:2621
msgid "Select parent part"
msgstr ""
-#: part/models.py:2622
+#: part/models.py:2629
msgid "Sub part"
msgstr ""
-#: part/models.py:2623
+#: part/models.py:2630
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2629
+#: part/models.py:2636
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2631 templates/js/translated/bom.js:566
-#: templates/js/translated/bom.js:640
+#: part/models.py:2638 templates/js/translated/bom.js:578
+#: templates/js/translated/bom.js:652
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2638
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2634
+#: part/models.py:2641
msgid "Overage"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2642
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2638
+#: part/models.py:2645
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2641
+#: part/models.py:2648
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2643
+#: part/models.py:2650
msgid "Checksum"
msgstr ""
-#: part/models.py:2643
+#: part/models.py:2650
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2647 templates/js/translated/bom.js:657
+#: part/models.py:2654 templates/js/translated/bom.js:669
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2648
+#: part/models.py:2655
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:2653 templates/js/translated/bom.js:649
+#: part/models.py:2660 templates/js/translated/bom.js:661
msgid "Allow Variants"
msgstr "Çeşide İzin Ver"
-#: part/models.py:2654
+#: part/models.py:2661
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:2739 stock/models.py:355
+#: part/models.py:2746 stock/models.py:357
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2748 part/models.py:2750
+#: part/models.py:2755 part/models.py:2757
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2879
+#: part/models.py:2886
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2908
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2920
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2928
msgid "Substitute part"
msgstr ""
-#: part/models.py:2932
+#: part/models.py:2939
msgid "Part 1"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2943
msgid "Part 2"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2943
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2968
+#: part/models.py:2975
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4327,7 +4418,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:253
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:270
msgid "BOM actions"
msgstr ""
@@ -4499,7 +4590,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:348
msgid "Duplicate Part"
msgstr ""
@@ -4533,145 +4624,149 @@ msgid "Showing stock for all variants of %(full_name)s"
msgstr ""
#: part/templates/part/detail.html:43
+msgid "Part Stock Allocations"
+msgstr ""
+
+#: part/templates/part/detail.html:60
msgid "Part Test Templates"
msgstr "Parça Test Şablonları"
-#: part/templates/part/detail.html:48
+#: part/templates/part/detail.html:65
msgid "Add Test Template"
msgstr "Test Şablonu Ekle"
-#: part/templates/part/detail.html:105
+#: part/templates/part/detail.html:122
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:142
+#: part/templates/part/detail.html:159
msgid "Part Variants"
msgstr "Parça Çeşitleri"
-#: part/templates/part/detail.html:146
+#: part/templates/part/detail.html:163
msgid "Create new variant"
msgstr "Yeni çeşit oluştur"
-#: part/templates/part/detail.html:147
+#: part/templates/part/detail.html:164
msgid "New Variant"
msgstr "Yeni Çeşit"
-#: part/templates/part/detail.html:174
+#: part/templates/part/detail.html:191
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:45
+#: part/templates/part/detail.html:228 part/templates/part/part_sidebar.html:49
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:215 part/templates/part/detail.html:216
+#: part/templates/part/detail.html:232 part/templates/part/detail.html:233
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:236 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:253 part/templates/part/part_sidebar.html:17
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:241
+#: part/templates/part/detail.html:258
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:245 templates/js/translated/bom.js:70
+#: part/templates/part/detail.html:262 templates/js/translated/bom.js:70
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:247
+#: part/templates/part/detail.html:264
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:257
+#: part/templates/part/detail.html:274
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:259 templates/js/translated/part.js:272
+#: part/templates/part/detail.html:276 templates/js/translated/part.js:272
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:278
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:266
+#: part/templates/part/detail.html:283
msgid "New BOM Item"
msgstr ""
-#: part/templates/part/detail.html:267
+#: part/templates/part/detail.html:284
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:280
+#: part/templates/part/detail.html:297
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:297
+#: part/templates/part/detail.html:314
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:322
+#: part/templates/part/detail.html:339
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:332
+#: part/templates/part/detail.html:349
msgid "Part Suppliers"
msgstr "Parça Tedarikçileri"
-#: part/templates/part/detail.html:360
+#: part/templates/part/detail.html:377
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:393
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:558
+#: part/templates/part/detail.html:575
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:559
+#: part/templates/part/detail.html:576
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:608
+#: part/templates/part/detail.html:625
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:652
+#: part/templates/part/detail.html:682
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:660
+#: part/templates/part/detail.html:690
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:755
+#: part/templates/part/detail.html:785
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:812
+#: part/templates/part/detail.html:842
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:925
+#: part/templates/part/detail.html:955
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:937
+#: part/templates/part/detail.html:967
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:949
+#: part/templates/part/detail.html:979
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1038
+#: part/templates/part/detail.html:1068
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4786,7 +4881,7 @@ msgstr ""
#: templates/js/translated/company.js:508
#: templates/js/translated/company.js:765
#: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:527 templates/js/translated/part.js:604
+#: templates/js/translated/part.js:533 templates/js/translated/part.js:610
msgid "Inactive"
msgstr "Pasif"
@@ -4805,10 +4900,6 @@ msgstr "Bu parça %(link)s parçasının bir çeşididir"
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1294
-msgid "On Order"
-msgstr ""
-
#: part/templates/part/part_base.html:210 templates/InvenTree/index.html:178
msgid "Required for Build Orders"
msgstr "Yapım İşi Emirleri için Gerekli"
@@ -4821,12 +4912,12 @@ msgstr "Satış Emirleri için Gerekli"
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:678
+#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:690
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1125
-#: templates/js/translated/part.js:1298
+#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1132
+#: templates/js/translated/part.js:1305
msgid "Building"
msgstr ""
@@ -4878,7 +4969,7 @@ msgid "Total Cost"
msgstr "Toplam Maliyet"
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:632
+#: templates/js/translated/bom.js:644
msgid "No supplier pricing available"
msgstr ""
@@ -4920,7 +5011,12 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/templates/part/part_sidebar.html:41
+#: part/templates/part/part_sidebar.html:31
+#: stock/templates/stock/stock_sidebar.html:8
+msgid "Allocations"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:45
msgid "Test Templates"
msgstr ""
@@ -4993,7 +5089,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:626
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:638
msgid "Supplier Cost"
msgstr ""
@@ -5015,7 +5111,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1690
+#: part/templates/part/prices.html:215 part/views.py:1699
msgid "Add Internal Price Break"
msgstr ""
@@ -5035,9 +5131,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr "Aşağıdaki parçalara kategori ayarla"
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:588
-#: templates/js/translated/part.js:491 templates/js/translated/part.js:1115
-#: templates/js/translated/part.js:1302
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:600
+#: templates/js/translated/part.js:497 templates/js/translated/part.js:1122
+#: templates/js/translated/part.js:1309
msgid "No Stock"
msgstr "Stok Yok"
@@ -5054,116 +5150,116 @@ msgstr "Yeni parça çeşidi oluştur"
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:116
+#: part/templatetags/inventree_extras.py:125
msgid "Unknown database"
msgstr ""
-#: part/views.py:92
+#: part/views.py:93
msgid "Set Part Category"
msgstr ""
-#: part/views.py:142
+#: part/views.py:143
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:214
+#: part/views.py:215
msgid "Match References"
msgstr ""
-#: part/views.py:502
+#: part/views.py:511
msgid "None"
msgstr "Hiçbiri"
-#: part/views.py:561
+#: part/views.py:570
msgid "Part QR Code"
msgstr ""
-#: part/views.py:663
+#: part/views.py:672
msgid "Select Part Image"
msgstr ""
-#: part/views.py:689
+#: part/views.py:698
msgid "Updated part image"
msgstr ""
-#: part/views.py:692
+#: part/views.py:701
msgid "Part image not found"
msgstr ""
-#: part/views.py:766
+#: part/views.py:775
msgid "Match Parts"
msgstr ""
-#: part/views.py:1101
+#: part/views.py:1110
msgid "Export Bill of Materials"
msgstr ""
-#: part/views.py:1150
+#: part/views.py:1159
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1157
+#: part/views.py:1166
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1166
+#: part/views.py:1175
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1315
+#: part/views.py:1324
msgid "Create Part Parameter Template"
msgstr "Parça Parametre Şablonu Oluştur"
-#: part/views.py:1325
+#: part/views.py:1334
msgid "Edit Part Parameter Template"
msgstr "Parça Parametre Şablonu Düzenle"
-#: part/views.py:1332
+#: part/views.py:1341
msgid "Delete Part Parameter Template"
msgstr "Parça Parametre Şablonu Sil"
-#: part/views.py:1391 templates/js/translated/part.js:315
+#: part/views.py:1400 templates/js/translated/part.js:315
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1429
+#: part/views.py:1438
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1435
+#: part/views.py:1444
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1444
+#: part/views.py:1453
msgid "Create Category Parameter Template"
msgstr "Kategori Parametre Şablonu Oluştur"
-#: part/views.py:1545
+#: part/views.py:1554
msgid "Edit Category Parameter Template"
msgstr "Kategori Parametre Şablonu Düzenle"
-#: part/views.py:1601
+#: part/views.py:1610
msgid "Delete Category Parameter Template"
msgstr "Kategori Parametre Şablonu Sil"
-#: part/views.py:1623
+#: part/views.py:1632
msgid "Added new price break"
msgstr ""
-#: part/views.py:1699
+#: part/views.py:1708
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1707
+#: part/views.py:1716
msgid "Delete Internal Price Break"
msgstr ""
-#: plugin/integration.py:124
+#: plugin/integration.py:138
msgid "No author found"
msgstr ""
-#: plugin/integration.py:136
+#: plugin/integration.py:152
msgid "No date found"
msgstr ""
@@ -5191,7 +5287,7 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:195
+#: plugin/models.py:199
msgid "Plugin"
msgstr ""
@@ -5357,12 +5453,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:517 stock/templates/stock/item_base.html:156
+#: stock/models.py:519 stock/templates/stock/item_base.html:156
#: templates/js/translated/build.js:293 templates/js/translated/build.js:697
#: templates/js/translated/build.js:1073
#: templates/js/translated/model_renderers.js:95
#: templates/js/translated/order.js:99 templates/js/translated/order.js:1945
-#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:415
+#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:423
msgid "Serial Number"
msgstr "Seri Numara"
@@ -5371,19 +5467,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:1948
+#: stock/models.py:1976
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:1954
+#: stock/models.py:1982
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:49
+#: templates/InvenTree/settings/plugin.html:50
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2367
+#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2525
msgid "Date"
msgstr ""
@@ -5396,23 +5492,27 @@ msgid "Fail"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:123
-#: stock/templates/stock/stock_sidebar.html:12
+#: stock/templates/stock/stock_sidebar.html:16
msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:578 templates/js/translated/stock.js:748
-#: templates/js/translated/stock.js:2627
+#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756
+#: templates/js/translated/stock.js:2785
msgid "Serial"
msgstr "Seri No"
-#: stock/api.py:478
+#: stock/api.py:476
msgid "Quantity is required"
msgstr ""
-#: stock/forms.py:77 stock/forms.py:251 stock/models.py:574
+#: stock/api.py:483
+msgid "Valid part must be supplied"
+msgstr ""
+
+#: stock/forms.py:77 stock/forms.py:251 stock/models.py:576
#: stock/templates/stock/item_base.html:193
-#: templates/js/translated/stock.js:1701
+#: templates/js/translated/stock.js:1709
msgid "Expiry Date"
msgstr ""
@@ -5460,228 +5560,228 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr "Kurulu stok kalemlerinin kaldırılmasını onayla"
-#: stock/models.py:60 stock/models.py:611
+#: stock/models.py:62 stock/models.py:613
#: stock/templates/stock/item_base.html:416
msgid "Owner"
msgstr ""
-#: stock/models.py:61 stock/models.py:612
+#: stock/models.py:63 stock/models.py:614
msgid "Select Owner"
msgstr ""
-#: stock/models.py:336
+#: stock/models.py:338
msgid "StockItem with this serial number already exists"
msgstr "Bu seri numarasına sahip stok kalemi zaten var"
-#: stock/models.py:372
+#: stock/models.py:374
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:382 stock/models.py:391
+#: stock/models.py:384 stock/models.py:393
msgid "Quantity must be 1 for item with a serial number"
msgstr "Seri numarası olan ögenin miktarı bir olmalı"
-#: stock/models.py:383
+#: stock/models.py:385
msgid "Serial number cannot be set if quantity greater than 1"
msgstr "Miktar birden büyük ise seri numarası ayarlanamaz"
-#: stock/models.py:405
+#: stock/models.py:407
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:413
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:418
+#: stock/models.py:420
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:461
+#: stock/models.py:463
msgid "Parent Stock Item"
msgstr "Üst Stok Kalemi"
-#: stock/models.py:470
+#: stock/models.py:472
msgid "Base part"
msgstr ""
-#: stock/models.py:478
+#: stock/models.py:480
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:484 stock/templates/stock/location.html:16
+#: stock/models.py:486 stock/templates/stock/location.html:16
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr "Stok Konumu"
-#: stock/models.py:487
+#: stock/models.py:489
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:494
+#: stock/models.py:496
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:500 stock/templates/stock/item_base.html:298
+#: stock/models.py:502 stock/templates/stock/item_base.html:298
msgid "Installed In"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:505
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:521
msgid "Serial number for this item"
msgstr "Bu öge için seri numarası"
-#: stock/models.py:533
+#: stock/models.py:535
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:537
+#: stock/models.py:539
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:546
+#: stock/models.py:548
msgid "Source Build"
msgstr ""
-#: stock/models.py:548
+#: stock/models.py:550
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:559
+#: stock/models.py:561
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:562
+#: stock/models.py:564
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:568
+#: stock/models.py:570
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:575
+#: stock/models.py:577
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:588
+#: stock/models.py:590
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:588
+#: stock/models.py:590
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:598 stock/templates/stock/item.html:111
+#: stock/models.py:600 stock/templates/stock/item.html:128
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:607
+#: stock/models.py:609
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1068
+#: stock/models.py:1096
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1074
+#: stock/models.py:1102
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1080
+#: stock/models.py:1108
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1083
+#: stock/models.py:1111
msgid "Serial numbers must be a list of integers"
msgstr "Seri numaraları tam sayı listesi olmalı"
-#: stock/models.py:1086
+#: stock/models.py:1114
msgid "Quantity does not match serial numbers"
msgstr "Miktar seri numaları ile eşleşmiyor"
-#: stock/models.py:1093
+#: stock/models.py:1121
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr "Seri numaraları zaten mevcut: {exists}"
-#: stock/models.py:1164
+#: stock/models.py:1192
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1167
+#: stock/models.py:1195
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1170
+#: stock/models.py:1198
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1173
+#: stock/models.py:1201
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1176
+#: stock/models.py:1204
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1179
+#: stock/models.py:1207
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1186 stock/serializers.py:774
+#: stock/models.py:1214 stock/serializers.py:775
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1190
+#: stock/models.py:1218
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1194
+#: stock/models.py:1222
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1198
+#: stock/models.py:1226
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1369
+#: stock/models.py:1397
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Stok kalemi stokta olmadığı için taşınamaz"
-#: stock/models.py:1868
+#: stock/models.py:1896
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1925
+#: stock/models.py:1953
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1931
+#: stock/models.py:1959
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1949
+#: stock/models.py:1977
msgid "Test name"
msgstr ""
-#: stock/models.py:1955 templates/js/translated/table_filters.js:271
+#: stock/models.py:1983 templates/js/translated/table_filters.js:271
msgid "Test result"
msgstr ""
-#: stock/models.py:1961
+#: stock/models.py:1989
msgid "Test output value"
msgstr ""
-#: stock/models.py:1968
+#: stock/models.py:1996
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1974
+#: stock/models.py:2002
msgid "Test notes"
msgstr ""
@@ -5706,7 +5806,7 @@ msgstr ""
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:326 stock/serializers.py:731 stock/serializers.py:972
+#: stock/serializers.py:326 stock/serializers.py:732 stock/serializers.py:973
msgid "Destination stock location"
msgstr ""
@@ -5718,63 +5818,63 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:588
+#: stock/serializers.py:589
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:592
+#: stock/serializers.py:593
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:597
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:626
+#: stock/serializers.py:627
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:632
+#: stock/serializers.py:633
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:640
+#: stock/serializers.py:641
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:650 stock/serializers.py:880
+#: stock/serializers.py:651 stock/serializers.py:881
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:738
+#: stock/serializers.py:739
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:743
+#: stock/serializers.py:744
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:744
+#: stock/serializers.py:745
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:749
+#: stock/serializers.py:750
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:750
+#: stock/serializers.py:751
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:760
+#: stock/serializers.py:761
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:842
+#: stock/serializers.py:843
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:870
+#: stock/serializers.py:871
msgid "Stock transaction notes"
msgstr ""
@@ -5787,47 +5887,51 @@ msgid "New Entry"
msgstr ""
#: stock/templates/stock/item.html:48
-msgid "Child Stock Items"
-msgstr ""
-
-#: stock/templates/stock/item.html:55
-msgid "This stock item does not have any child items"
+msgid "Stock Item Allocations"
msgstr ""
#: stock/templates/stock/item.html:64
-#: stock/templates/stock/stock_sidebar.html:8
-msgid "Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:57
-msgid "Test Report"
+msgid "Child Stock Items"
msgstr ""
#: stock/templates/stock/item.html:72
+msgid "This stock item does not have any child items"
+msgstr ""
+
+#: stock/templates/stock/item.html:81
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:57
+msgid "Test Report"
+msgstr ""
+
+#: stock/templates/stock/item.html:89
msgid "Delete Test Data"
msgstr ""
-#: stock/templates/stock/item.html:76
+#: stock/templates/stock/item.html:93
msgid "Add Test Data"
msgstr ""
-#: stock/templates/stock/item.html:133
+#: stock/templates/stock/item.html:150
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:137 stock/views.py:482
+#: stock/templates/stock/item.html:154 stock/views.py:482
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304
+#: stock/templates/stock/item.html:309 stock/templates/stock/item.html:334
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:324
+#: stock/templates/stock/item.html:354
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:338
+#: stock/templates/stock/item.html:368
msgid "Delete Test Result"
msgstr ""
@@ -5952,7 +6056,7 @@ msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:206
-#: templates/js/translated/stock.js:1714
+#: templates/js/translated/stock.js:1722
msgid "Last Updated"
msgstr ""
@@ -6111,7 +6215,7 @@ msgid "Sublocations"
msgstr "Alt konumlar"
#: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164
-#: templates/stats.html:97 users/models.py:42
+#: templates/stats.html:109 users/models.py:42
msgid "Stock Locations"
msgstr "Stok Konumları"
@@ -6135,7 +6239,7 @@ msgstr ""
msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/stock_sidebar.html:16
+#: stock/templates/stock/stock_sidebar.html:20
msgid "Child Items"
msgstr ""
@@ -6164,7 +6268,7 @@ msgstr "Bu işlem kolayca geri alınamaz"
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:162
+#: stock/views.py:162 templates/js/translated/stock.js:139
msgid "Edit Stock Location"
msgstr "Stok konumunu düzenle"
@@ -6204,7 +6308,7 @@ msgstr ""
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:727 templates/js/translated/stock.js:1066
+#: stock/views.py:727 templates/js/translated/stock.js:1074
msgid "Confirm stock adjustment"
msgstr "Stok ayarlamasını onayla"
@@ -6212,7 +6316,7 @@ msgstr "Stok ayarlamasını onayla"
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:324
+#: stock/views.py:760 templates/js/translated/stock.js:332
msgid "Edit Stock Item"
msgstr ""
@@ -6224,7 +6328,7 @@ msgstr "Yeni Stok konumu oluştur"
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1153 templates/js/translated/stock.js:304
+#: stock/views.py:1153 templates/js/translated/stock.js:312
msgid "Duplicate Stock Item"
msgstr ""
@@ -6268,6 +6372,18 @@ msgstr ""
msgid "The requested page does not exist"
msgstr ""
+#: templates/500.html:5 templates/500.html:11
+msgid "Internal Server Error"
+msgstr ""
+
+#: templates/500.html:14
+msgid "The InvenTree server raised an internal error"
+msgstr ""
+
+#: templates/500.html:15
+msgid "Refer to the error log in the admin interface for further details"
+msgstr ""
+
#: templates/503.html:10 templates/503.html:35
msgid "Site is in Maintenance"
msgstr ""
@@ -6390,7 +6506,7 @@ msgid "Signup"
msgstr ""
#: templates/InvenTree/settings/mixins/settings.html:5
-#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:118
+#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113
msgid "Settings"
msgstr ""
@@ -6431,43 +6547,43 @@ msgstr ""
msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage."
msgstr ""
-#: templates/InvenTree/settings/plugin.html:32
+#: templates/InvenTree/settings/plugin.html:33
msgid "Plugins"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:37
+#: templates/InvenTree/settings/plugin.html:38
#: templates/js/translated/plugin.js:15
msgid "Install Plugin"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:46 templates/navbar.html:111
+#: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111
#: users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin.html:49
#: templates/InvenTree/settings/plugin_settings.html:28
msgid "Author"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:50
+#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin_settings.html:43
msgid "Version"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:91
+#: templates/InvenTree/settings/plugin.html:92
msgid "Inactive plugins"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:114
+#: templates/InvenTree/settings/plugin.html:115
msgid "Plugin Error Stack"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:123
+#: templates/InvenTree/settings/plugin.html:124
msgid "Stage"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:125
+#: templates/InvenTree/settings/plugin.html:126
msgid "Message"
msgstr ""
@@ -6555,37 +6671,37 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:75
+#: templates/InvenTree/settings/settings.html:78
msgid "Edit Plugin Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:77
+#: templates/InvenTree/settings/settings.html:80
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:79
+#: templates/InvenTree/settings/settings.html:82
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:168
+#: templates/InvenTree/settings/settings.html:171
msgid "No category parameter templates found"
msgstr "Kategori parametre şablonu bulunamadı"
-#: templates/InvenTree/settings/settings.html:190
-#: templates/InvenTree/settings/settings.html:289
+#: templates/InvenTree/settings/settings.html:193
+#: templates/InvenTree/settings/settings.html:292
msgid "Edit Template"
msgstr "Şablonu Düzenle"
-#: templates/InvenTree/settings/settings.html:191
-#: templates/InvenTree/settings/settings.html:290
+#: templates/InvenTree/settings/settings.html:194
+#: templates/InvenTree/settings/settings.html:293
msgid "Delete Template"
msgstr "Şablonu Sil"
-#: templates/InvenTree/settings/settings.html:269
+#: templates/InvenTree/settings/settings.html:272
msgid "No part parameter templates found"
msgstr "Parça parametre şablonu bulunamadı"
-#: templates/InvenTree/settings/settings.html:273
+#: templates/InvenTree/settings/settings.html:276
msgid "ID"
msgstr ""
@@ -6763,124 +6879,105 @@ msgstr ""
msgid "Remove multifactor"
msgstr ""
-#: templates/InvenTree/settings/user.html:219
+#: templates/InvenTree/settings/user.html:220
+msgid "Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:226
+msgid "Log out active sessions (except this one)"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:227
+msgid "Log Out Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:236
+msgid "unknown on unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:237
+msgid "unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:241
+msgid "IP Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:242
+msgid "Device"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:243
+msgid "Last Activity"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:252
+#, python-format
+msgid "%(time)s ago (this session)"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:254
+#, python-format
+msgid "%(time)s ago"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:266
+msgid "Do you really want to remove the selected email address?"
+msgstr ""
+
#: templates/InvenTree/settings/user_display.html:25
msgid "Theme Settings"
msgstr "Tema Ayarları"
-#: templates/InvenTree/settings/user.html:227
#: templates/InvenTree/settings/user_display.html:35
msgid "Select theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:237
#: templates/InvenTree/settings/user_display.html:46
msgid "Set Theme"
msgstr "Tema Seç"
-#: templates/InvenTree/settings/user.html:246
#: templates/InvenTree/settings/user_display.html:54
msgid "Language Settings"
msgstr "Dil Ayarları"
-#: templates/InvenTree/settings/user.html:254
#: templates/InvenTree/settings/user_display.html:63
msgid "Select language"
msgstr ""
-#: templates/InvenTree/settings/user.html:270
#: templates/InvenTree/settings/user_display.html:79
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:272
#: templates/InvenTree/settings/user_display.html:81
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:279
#: templates/InvenTree/settings/user_display.html:88
msgid "Set Language"
msgstr "Dili Ayarla"
-#: templates/InvenTree/settings/user.html:281
#: templates/InvenTree/settings/user_display.html:91
msgid "Some languages are not complete"
msgstr ""
-#: templates/InvenTree/settings/user.html:283
#: templates/InvenTree/settings/user_display.html:93
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user.html:285
+#: templates/InvenTree/settings/user_display.html:95
+msgid "and hidden."
+msgstr ""
+
#: templates/InvenTree/settings/user_display.html:95
msgid "Show them too"
msgstr ""
-#: templates/InvenTree/settings/user.html:292
#: templates/InvenTree/settings/user_display.html:101
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user.html:293
-#, python-format
-msgid "Native language translation of the\n"
-" InvenTree web application is community contributed via crowdin. Contributions are\n"
-" welcomed and encouraged."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:302
-msgid "Active Sessions"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:308
-msgid "Log out active sessions (except this one)"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:309
-msgid "Log Out Active Sessions"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:318
-msgid "unknown on unknown"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:319
-msgid "unknown"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:323
-msgid "IP Address"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:324
-msgid "Device"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:325
-msgid "Last Activity"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:334
-#, python-format
-msgid "%(time)s ago (this session)"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:336
-#, python-format
-msgid "%(time)s ago"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:348
-msgid "Do you really want to remove the selected email address?"
-msgstr ""
-
-#: templates/InvenTree/settings/user_display.html:95
-msgid "and hidden."
-msgstr ""
-
#: templates/InvenTree/settings/user_display.html:102
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
@@ -6899,9 +6996,9 @@ msgid "InvenTree Version Information"
msgstr "InvenTree Sürüm Bilgisi"
#: templates/about.html:11 templates/about.html:105
-#: templates/js/translated/bom.js:395 templates/js/translated/modals.js:53
-#: templates/js/translated/modals.js:573 templates/js/translated/modals.js:667
-#: templates/js/translated/modals.js:970 templates/modals.html:15
+#: templates/js/translated/bom.js:407 templates/js/translated/modals.js:53
+#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
+#: templates/js/translated/modals.js:983 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr "Kapat"
@@ -7178,13 +7275,13 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1103
+#: templates/js/translated/bom.js:1117
msgid "Required Quantity"
msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:579 templates/js/translated/build.js:1189
+#: templates/js/translated/bom.js:591 templates/js/translated/build.js:1189
#: templates/js/translated/build.js:1810
#: templates/js/translated/table_filters.js:178
msgid "Available"
@@ -7208,10 +7305,6 @@ msgstr ""
msgid "Click on the following link to view this part"
msgstr ""
-#: templates/email/low_stock_notification.html:17
-msgid "Total Stock"
-msgstr ""
-
#: templates/email/low_stock_notification.html:19
msgid "Minimum Quantity"
msgstr ""
@@ -7232,11 +7325,11 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1040
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1053
msgid "No Response"
msgstr "Cevap Yok"
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1041
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1054
msgid "No response from the InvenTree server"
msgstr ""
@@ -7248,27 +7341,27 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1063
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1051
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1064
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1068
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1056
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1069
msgid "You do not have the required permissions to access this function"
msgstr "Bu fonksiyona erişmek için gerekli izinlere sahip değilsiniz"
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1073
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1061
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1074
msgid "The requested resource could not be located on the server"
msgstr ""
@@ -7280,11 +7373,11 @@ msgstr ""
msgid "HTTP method not allowed at URL"
msgstr ""
-#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1065
+#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1078
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1079
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -7353,7 +7446,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:140
-#: templates/js/translated/modals.js:1030
+#: templates/js/translated/modals.js:1043
msgid "Invalid server response"
msgstr ""
@@ -7381,7 +7474,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1018
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026
msgid "Remove stock item"
msgstr ""
@@ -7428,12 +7521,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73
-#: templates/js/translated/order.js:369 templates/js/translated/stock.js:510
+#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74
-#: templates/js/translated/order.js:370 templates/js/translated/stock.js:511
+#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519
msgid "Select file format"
msgstr ""
@@ -7489,87 +7582,87 @@ msgstr "Dışa aktarılan malzeme listesine parça tedarikçisi verilerini dahil
msgid "Remove substitute part"
msgstr ""
-#: templates/js/translated/bom.js:340
-msgid "Select and add a new variant item using the input below"
+#: templates/js/translated/bom.js:352
+msgid "Select and add a new substitute part using the input below"
msgstr ""
-#: templates/js/translated/bom.js:351
+#: templates/js/translated/bom.js:363
msgid "Are you sure you wish to remove this substitute part link?"
msgstr ""
-#: templates/js/translated/bom.js:357
+#: templates/js/translated/bom.js:369
msgid "Remove Substitute Part"
msgstr ""
-#: templates/js/translated/bom.js:396
+#: templates/js/translated/bom.js:408
msgid "Add Substitute"
msgstr ""
-#: templates/js/translated/bom.js:397
+#: templates/js/translated/bom.js:409
msgid "Edit BOM Item Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:516
+#: templates/js/translated/bom.js:528
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:520 templates/js/translated/build.js:1171
+#: templates/js/translated/bom.js:532 templates/js/translated/build.js:1171
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:525
+#: templates/js/translated/bom.js:537
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:597
+#: templates/js/translated/bom.js:609
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:612
+#: templates/js/translated/bom.js:624
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:619
+#: templates/js/translated/bom.js:631
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:668 templates/js/translated/bom.js:757
+#: templates/js/translated/bom.js:680 templates/js/translated/bom.js:769
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:728
+#: templates/js/translated/bom.js:740
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:730
+#: templates/js/translated/bom.js:742
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:732
+#: templates/js/translated/bom.js:744
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:734 templates/js/translated/bom.js:908
+#: templates/js/translated/bom.js:746 templates/js/translated/bom.js:920
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:736 templates/js/translated/bom.js:891
+#: templates/js/translated/bom.js:748 templates/js/translated/bom.js:903
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:830 templates/js/translated/build.js:915
+#: templates/js/translated/bom.js:842 templates/js/translated/build.js:915
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:886
+#: templates/js/translated/bom.js:898
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:1086 templates/js/translated/build.js:1155
+#: templates/js/translated/bom.js:1100 templates/js/translated/build.js:1155
msgid "Required Part"
msgstr "Gerekli Parça"
-#: templates/js/translated/bom.js:1108
+#: templates/js/translated/bom.js:1122
msgid "Inherited from parent BOM"
msgstr ""
@@ -7725,9 +7818,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1206
-#: templates/js/translated/part.js:1617 templates/js/translated/stock.js:1512
-#: templates/js/translated/stock.js:2321
+#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1213
+#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1520
+#: templates/js/translated/stock.js:2479
msgid "Select"
msgstr ""
@@ -7735,7 +7828,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2540
+#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2698
msgid "No user information"
msgstr ""
@@ -7808,34 +7901,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:511
-#: templates/js/translated/part.js:596
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:517
+#: templates/js/translated/part.js:602
msgid "Template part"
msgstr "Şablon Parça"
#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:515
-#: templates/js/translated/part.js:600
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:521
+#: templates/js/translated/part.js:606
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:690
+#: templates/js/translated/company.js:631 templates/js/translated/part.js:696
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:732
+#: templates/js/translated/company.js:668 templates/js/translated/part.js:738
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:733
+#: templates/js/translated/company.js:669 templates/js/translated/part.js:739
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:750
+#: templates/js/translated/company.js:688 templates/js/translated/part.js:756
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:762
+#: templates/js/translated/company.js:699 templates/js/translated/part.js:768
msgid "Delete Parameter"
msgstr ""
@@ -7844,12 +7937,12 @@ msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:420
+#: templates/js/translated/filters.js:429
msgid "true"
msgstr "doğru"
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:421
+#: templates/js/translated/filters.js:430
msgid "false"
msgstr "yanlış"
@@ -7869,7 +7962,7 @@ msgstr ""
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:329
+#: templates/js/translated/filters.js:338
msgid "Create filter"
msgstr ""
@@ -7898,20 +7991,20 @@ msgstr ""
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1080 templates/modals.html:19
+#: templates/js/translated/forms.js:1082 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1471
+#: templates/js/translated/forms.js:1487
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1675
+#: templates/js/translated/forms.js:1691
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1895
+#: templates/js/translated/forms.js:1930
msgid "Clear input"
msgstr ""
@@ -7924,7 +8017,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1042
+#: templates/js/translated/stock.js:1050
msgid "Select Stock Items"
msgstr ""
@@ -7974,12 +8067,12 @@ msgid "Select Label Template"
msgstr "Etiket Şablonu Seç"
#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
-#: templates/js/translated/modals.js:599
+#: templates/js/translated/modals.js:610
msgid "Cancel"
msgstr ""
#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:666 templates/js/translated/modals.js:969
+#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:982
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
@@ -7988,47 +8081,47 @@ msgstr ""
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:381
+#: templates/js/translated/modals.js:392
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:540
+#: templates/js/translated/modals.js:551
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:598
+#: templates/js/translated/modals.js:609
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:655
+#: templates/js/translated/modals.js:666
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:921
+#: templates/js/translated/modals.js:934
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:921
+#: templates/js/translated/modals.js:934
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:946
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1030
+#: templates/js/translated/modals.js:1043
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1045
+#: templates/js/translated/modals.js:1058
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1046
+#: templates/js/translated/modals.js:1059
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1069
+#: templates/js/translated/modals.js:1082
msgid "Error requesting form data"
msgstr ""
@@ -8052,23 +8145,24 @@ msgstr ""
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:236
+#: templates/js/translated/model_renderers.js:249
+#: templates/js/translated/model_renderers.js:270
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:253
+#: templates/js/translated/model_renderers.js:287
msgid "Shipment ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:273
+#: templates/js/translated/model_renderers.js:307
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:310
+#: templates/js/translated/model_renderers.js:344
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:339
+#: templates/js/translated/model_renderers.js:373
msgid "Supplier Part ID"
msgstr ""
@@ -8116,7 +8210,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2123
+#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2131
msgid "Stock Status"
msgstr ""
@@ -8140,7 +8234,7 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:790 templates/js/translated/part.js:803
+#: templates/js/translated/order.js:790 templates/js/translated/part.js:809
msgid "No purchase orders found"
msgstr ""
@@ -8165,7 +8259,7 @@ msgid "Total"
msgstr ""
#: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163
-#: templates/js/translated/part.js:1834 templates/js/translated/part.js:2045
+#: templates/js/translated/part.js:1841 templates/js/translated/part.js:2052
msgid "Unit Price"
msgstr ""
@@ -8181,7 +8275,7 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1166 templates/js/translated/part.js:935
+#: templates/js/translated/order.js:1166 templates/js/translated/part.js:942
msgid "Receive line item"
msgstr ""
@@ -8250,7 +8344,7 @@ msgid "Delete Stock Allocation"
msgstr ""
#: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048
-#: templates/js/translated/stock.js:1428
+#: templates/js/translated/stock.js:1436
msgid "Shipped to customer"
msgstr ""
@@ -8378,144 +8472,148 @@ msgstr ""
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:412
+#: templates/js/translated/part.js:351
+msgid "Create Part Variant"
+msgstr ""
+
+#: templates/js/translated/part.js:418
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:414
+#: templates/js/translated/part.js:420
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:419
+#: templates/js/translated/part.js:425
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:421
+#: templates/js/translated/part.js:427
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:438
+#: templates/js/translated/part.js:444
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:448
+#: templates/js/translated/part.js:454
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:451
+#: templates/js/translated/part.js:457
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:475
+#: templates/js/translated/part.js:481
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:503 templates/js/translated/part.js:588
+#: templates/js/translated/part.js:509 templates/js/translated/part.js:594
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:507 templates/js/translated/part.js:592
+#: templates/js/translated/part.js:513 templates/js/translated/part.js:598
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:519
+#: templates/js/translated/part.js:525
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:529
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:638
+#: templates/js/translated/part.js:644
msgid "No variants found"
msgstr "Çeşit bulunamadı"
-#: templates/js/translated/part.js:1005
+#: templates/js/translated/part.js:1012
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1029
+#: templates/js/translated/part.js:1036
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1096 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:1363
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1266
+#: templates/js/translated/part.js:1273
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1289
+#: templates/js/translated/part.js:1296
#: templates/js/translated/table_filters.js:430
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1380 templates/js/translated/part.js:1552
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559
+#: templates/js/translated/stock.js:2440
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1396
+#: templates/js/translated/part.js:1403
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1571 templates/js/translated/stock.js:2301
+#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2459
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1635
+#: templates/js/translated/part.js:1642
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1649 templates/js/translated/stock.js:2345
+#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2503
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1693
+#: templates/js/translated/part.js:1700
msgid "No test templates matching query"
msgstr "Sorgu ile eşleşen test şablonu bulunamadı"
-#: templates/js/translated/part.js:1744 templates/js/translated/stock.js:1234
+#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1242
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1745 templates/js/translated/stock.js:1235
+#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1243
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1751
+#: templates/js/translated/part.js:1758
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1773
+#: templates/js/translated/part.js:1780
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1787
+#: templates/js/translated/part.js:1794
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1812
+#: templates/js/translated/part.js:1819
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1867
+#: templates/js/translated/part.js:1874
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1868
+#: templates/js/translated/part.js:1875
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1969
+#: templates/js/translated/part.js:1976
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1988
+#: templates/js/translated/part.js:1995
msgid "Single Price Difference"
msgstr ""
@@ -8589,340 +8687,344 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:73
+#: templates/js/translated/stock.js:74
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:173
+#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:181
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/stock.js:93 templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:94 templates/js/translated/stock.js:183
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/stock.js:101
+#: templates/js/translated/stock.js:102
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:110
+#: templates/js/translated/stock.js:111
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:146
+#: templates/js/translated/stock.js:154
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:186
+#: templates/js/translated/stock.js:194
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:225
+#: templates/js/translated/stock.js:233
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:231
+#: templates/js/translated/stock.js:239
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:374
+#: templates/js/translated/stock.js:382
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:387
+#: templates/js/translated/stock.js:395
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:412
+#: templates/js/translated/stock.js:420
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:416 templates/js/translated/stock.js:417
+#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:433
+#: templates/js/translated/stock.js:441
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:453
+#: templates/js/translated/stock.js:461
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:462
+#: templates/js/translated/stock.js:470
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:507
+#: templates/js/translated/stock.js:515
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:518
+#: templates/js/translated/stock.js:526
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:527
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:628
+#: templates/js/translated/stock.js:636
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:629
+#: templates/js/translated/stock.js:637
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:706
+#: templates/js/translated/stock.js:714
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:707
+#: templates/js/translated/stock.js:715
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:709
+#: templates/js/translated/stock.js:717
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:710
+#: templates/js/translated/stock.js:718
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:796
+#: templates/js/translated/stock.js:804
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:797
+#: templates/js/translated/stock.js:805
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:892
+#: templates/js/translated/stock.js:900
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:893
+#: templates/js/translated/stock.js:901
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:899
+#: templates/js/translated/stock.js:907
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:900
+#: templates/js/translated/stock.js:908
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:904
+#: templates/js/translated/stock.js:912
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:905
+#: templates/js/translated/stock.js:913
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:909
+#: templates/js/translated/stock.js:917
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:910 users/models.py:206
+#: templates/js/translated/stock.js:918 users/models.py:208
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:914 templates/stock_table.html:58
+#: templates/js/translated/stock.js:922 templates/stock_table.html:58
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1003
+#: templates/js/translated/stock.js:1011
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1003
+#: templates/js/translated/stock.js:1011
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1043
+#: templates/js/translated/stock.js:1051
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1201
+#: templates/js/translated/stock.js:1209
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1211
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1208
+#: templates/js/translated/stock.js:1216
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1230
+#: templates/js/translated/stock.js:1238
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1256
+#: templates/js/translated/stock.js:1264
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1313
+#: templates/js/translated/stock.js:1321
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1420
+#: templates/js/translated/stock.js:1428
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1424
+#: templates/js/translated/stock.js:1432
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1432
+#: templates/js/translated/stock.js:1440
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1438
+#: templates/js/translated/stock.js:1446
msgid "No stock location set"
msgstr "Stok konumu ayarlanmadı"
-#: templates/js/translated/stock.js:1596
+#: templates/js/translated/stock.js:1604
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1601
+#: templates/js/translated/stock.js:1609
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1612
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/stock.js:1616
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1610
+#: templates/js/translated/stock.js:1618
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1616
+#: templates/js/translated/stock.js:1624
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1626
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1620
+#: templates/js/translated/stock.js:1628
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1625
+#: templates/js/translated/stock.js:1633
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1632
+#: templates/js/translated/stock.js:1640
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1634
+#: templates/js/translated/stock.js:1642
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1644
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1640
+#: templates/js/translated/stock.js:1648
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1698
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1763
+#: templates/js/translated/stock.js:1771
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1801
+#: templates/js/translated/stock.js:1809
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1822 templates/js/translated/stock.js:1870
+#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:1878
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1910
+#: templates/js/translated/stock.js:1918
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1937
+#: templates/js/translated/stock.js:1945
msgid "locations"
msgstr "konumlar"
-#: templates/js/translated/stock.js:1939
+#: templates/js/translated/stock.js:1947
msgid "Undefined location"
msgstr "Tanımsız konum"
-#: templates/js/translated/stock.js:2138
+#: templates/js/translated/stock.js:2146
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2152
+#: templates/js/translated/stock.js:2160
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2153
+#: templates/js/translated/stock.js:2161
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2377
+#: templates/js/translated/stock.js:2340
+msgid "Allocated Quantity"
+msgstr ""
+
+#: templates/js/translated/stock.js:2535
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:2399
+#: templates/js/translated/stock.js:2557
msgid "Details"
msgstr "Detaylar"
-#: templates/js/translated/stock.js:2424
+#: templates/js/translated/stock.js:2582
msgid "Location no longer exists"
msgstr "Konum artık yok"
-#: templates/js/translated/stock.js:2443
+#: templates/js/translated/stock.js:2601
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2462
+#: templates/js/translated/stock.js:2620
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2480
+#: templates/js/translated/stock.js:2638
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2503
+#: templates/js/translated/stock.js:2661
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2511
+#: templates/js/translated/stock.js:2669
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2552
+#: templates/js/translated/stock.js:2710
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2553
+#: templates/js/translated/stock.js:2711
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2604
+#: templates/js/translated/stock.js:2762
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2655
+#: templates/js/translated/stock.js:2813
msgid "Uninstall Stock Item"
msgstr ""
@@ -9194,11 +9296,11 @@ msgstr ""
msgid "Sell"
msgstr ""
-#: templates/navbar.html:113
+#: templates/navbar.html:114
msgid "Logout"
msgstr ""
-#: templates/navbar.html:115
+#: templates/navbar.html:116
msgid "Login"
msgstr ""
@@ -9246,31 +9348,43 @@ msgstr ""
msgid "Server is deployed using docker"
msgstr ""
-#: templates/stats.html:40
-msgid "Server status"
+#: templates/stats.html:39
+msgid "Plugin Support"
msgstr ""
#: templates/stats.html:43
-msgid "Healthy"
+msgid "Plugin support enabled"
msgstr ""
#: templates/stats.html:45
-msgid "Issues detected"
+msgid "Plugin support disabled"
msgstr ""
#: templates/stats.html:52
-msgid "Background Worker"
+msgid "Server status"
msgstr ""
#: templates/stats.html:55
+msgid "Healthy"
+msgstr ""
+
+#: templates/stats.html:57
+msgid "Issues detected"
+msgstr ""
+
+#: templates/stats.html:64
+msgid "Background Worker"
+msgstr ""
+
+#: templates/stats.html:67
msgid "Background worker not running"
msgstr ""
-#: templates/stats.html:63
+#: templates/stats.html:75
msgid "Email Settings"
msgstr ""
-#: templates/stats.html:66
+#: templates/stats.html:78
msgid "Email settings not configured"
msgstr ""
@@ -9366,35 +9480,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:193
+#: users/models.py:195
msgid "Permission set"
msgstr ""
-#: users/models.py:201
+#: users/models.py:203
msgid "Group"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
msgid "View"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
msgid "Permission to view items"
msgstr ""
-#: users/models.py:206
+#: users/models.py:208
msgid "Permission to add items"
msgstr ""
-#: users/models.py:208
+#: users/models.py:210
msgid "Change"
msgstr ""
-#: users/models.py:208
+#: users/models.py:210
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:210
+#: users/models.py:212
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/vi/LC_MESSAGES/django.po b/InvenTree/locale/vi/LC_MESSAGES/django.po
index 4b75e64c4e..fc68f7dd4a 100644
--- a/InvenTree/locale/vi/LC_MESSAGES/django.po
+++ b/InvenTree/locale/vi/LC_MESSAGES/django.po
@@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-01-10 03:54+0000\n"
-"PO-Revision-Date: 2022-01-10 03:57\n"
+"POT-Creation-Date: 2022-01-29 00:17+0000\n"
+"PO-Revision-Date: 2022-01-29 01:11\n"
"Last-Translator: \n"
"Language-Team: Vietnamese\n"
"Language: vi_VN\n"
@@ -18,15 +18,15 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 138\n"
-#: InvenTree/api.py:64
+#: InvenTree/api.py:55
msgid "API endpoint not found"
msgstr ""
-#: InvenTree/api.py:110
+#: InvenTree/api.py:101
msgid "No action specified"
msgstr ""
-#: InvenTree/api.py:124
+#: InvenTree/api.py:116
msgid "No matching action found"
msgstr ""
@@ -80,41 +80,41 @@ msgstr ""
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:437
+#: InvenTree/helpers.py:439
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:444 order/models.py:279 order/models.py:420
+#: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425
#: stock/views.py:1231
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:447
+#: InvenTree/helpers.py:449
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:469 InvenTree/helpers.py:472 InvenTree/helpers.py:475
-#: InvenTree/helpers.py:500
+#: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477
+#: InvenTree/helpers.py:502
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:510
+#: InvenTree/helpers.py:512
#, python-brace-format
msgid "Invalid group {group}"
msgstr ""
-#: InvenTree/helpers.py:516
+#: InvenTree/helpers.py:518
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:522
+#: InvenTree/helpers.py:524
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:526
+#: InvenTree/helpers.py:528
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
@@ -127,7 +127,7 @@ msgstr ""
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:132 stock/models.py:1967
+#: InvenTree/models.py:132 stock/models.py:1995
#: templates/js/translated/attachment.js:119
msgid "Attachment"
msgstr ""
@@ -137,15 +137,15 @@ msgid "Select file to attach"
msgstr ""
#: InvenTree/models.py:139 company/models.py:131 company/models.py:348
-#: company/models.py:564 order/models.py:124 part/models.py:828
+#: company/models.py:564 order/models.py:127 part/models.py:830
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1317
+#: templates/js/translated/company.js:829 templates/js/translated/part.js:1324
msgid "Link"
msgstr ""
-#: InvenTree/models.py:140 build/models.py:330 part/models.py:829
-#: stock/models.py:527
+#: InvenTree/models.py:140 build/models.py:332 part/models.py:831
+#: stock/models.py:529
msgid "Link to external URL"
msgstr ""
@@ -157,10 +157,11 @@ msgstr "Bình luận"
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213
-#: common/models.py:1214 part/models.py:2258 part/models.py:2278
+#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1223
+#: common/models.py:1224 common/models.py:1452 common/models.py:1453
+#: part/models.py:2265 part/models.py:2285
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2534
+#: templates/js/translated/stock.js:2692
msgid "User"
msgstr "Người dùng"
@@ -197,42 +198,42 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:277 InvenTree/models.py:278 company/models.py:415
-#: label/models.py:112 part/models.py:772 part/models.py:2442
-#: plugin/models.py:40 report/models.py:181
+#: InvenTree/models.py:277 InvenTree/models.py:278 common/models.py:1438
+#: company/models.py:415 label/models.py:112 part/models.py:774
+#: part/models.py:2449 plugin/models.py:40 report/models.py:181
#: templates/InvenTree/settings/mixins/urls.html:13
-#: templates/InvenTree/settings/plugin.html:47
-#: templates/InvenTree/settings/plugin.html:124
+#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin.html:125
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:279
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:561
-#: templates/js/translated/part.js:700 templates/js/translated/part.js:1624
-#: templates/js/translated/stock.js:2327
+#: templates/InvenTree/settings/settings.html:282
+#: templates/js/translated/company.js:641 templates/js/translated/part.js:567
+#: templates/js/translated/part.js:706 templates/js/translated/part.js:1631
+#: templates/js/translated/stock.js:2485
msgid "Name"
msgstr ""
-#: InvenTree/models.py:284 build/models.py:207
+#: InvenTree/models.py:284 build/models.py:209
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:73 label/models.py:119
-#: order/models.py:122 part/models.py:795 part/templates/part/category.html:74
+#: order/models.py:125 part/models.py:797 part/templates/part/category.html:74
#: part/templates/part/part_base.html:163
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:93
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:327 templates/js/translated/bom.js:540
+#: templates/js/translated/bom.js:339 templates/js/translated/bom.js:552
#: templates/js/translated/build.js:1682 templates/js/translated/company.js:345
#: templates/js/translated/company.js:551
#: templates/js/translated/company.js:840 templates/js/translated/order.js:836
#: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258
-#: templates/js/translated/part.js:620 templates/js/translated/part.js:992
-#: templates/js/translated/part.js:1077 templates/js/translated/part.js:1247
-#: templates/js/translated/part.js:1643 templates/js/translated/part.js:1712
-#: templates/js/translated/stock.js:1569 templates/js/translated/stock.js:2339
-#: templates/js/translated/stock.js:2384
+#: templates/js/translated/part.js:626 templates/js/translated/part.js:999
+#: templates/js/translated/part.js:1084 templates/js/translated/part.js:1254
+#: templates/js/translated/part.js:1650 templates/js/translated/part.js:1719
+#: templates/js/translated/stock.js:1577 templates/js/translated/stock.js:2314
+#: templates/js/translated/stock.js:2497 templates/js/translated/stock.js:2542
msgid "Description"
msgstr "Mô tả"
@@ -244,7 +245,7 @@ msgstr "Mô tả (tùy chọn)"
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:65 part/models.py:2727
+#: InvenTree/serializers.py:65 part/models.py:2734
msgid "Must be a valid number"
msgstr ""
@@ -252,83 +253,83 @@ msgstr ""
msgid "Filename"
msgstr "Tên tập tin"
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:661
msgid "German"
msgstr ""
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:662
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:663
msgid "English"
msgstr ""
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:664
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:665
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:666
msgid "French"
msgstr ""
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:667
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:668
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:669
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:670
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:671
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:672
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:673
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:674
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:675
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:676
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:677
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:678
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:679
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:680
msgid "Chinese"
msgstr ""
@@ -374,7 +375,7 @@ msgstr ""
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:143 order/models.py:941
+#: InvenTree/status_codes.py:143 order/models.py:961
#: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255
msgid "Shipped"
msgstr ""
@@ -455,7 +456,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2064
+#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2072
msgid "Merged stock items"
msgstr ""
@@ -543,56 +544,56 @@ msgstr ""
msgid "System Information"
msgstr "Thông tin hệ thống"
-#: barcodes/api.py:54 barcodes/api.py:151
+#: barcodes/api.py:54 barcodes/api.py:152
msgid "Must provide barcode_data parameter"
msgstr ""
-#: barcodes/api.py:127
+#: barcodes/api.py:128
msgid "No match found for barcode data"
msgstr ""
-#: barcodes/api.py:129
+#: barcodes/api.py:130
msgid "Match found for barcode data"
msgstr ""
-#: barcodes/api.py:154
+#: barcodes/api.py:155
msgid "Must provide stockitem parameter"
msgstr ""
-#: barcodes/api.py:161
+#: barcodes/api.py:162
msgid "No matching stock item found"
msgstr ""
-#: barcodes/api.py:191
+#: barcodes/api.py:193
msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:195
+#: barcodes/api.py:197
msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:199
+#: barcodes/api.py:201
msgid "Barcode already matches Part"
msgstr ""
-#: barcodes/api.py:205 barcodes/api.py:217
+#: barcodes/api.py:207 barcodes/api.py:219
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:223
+#: barcodes/api.py:225
msgid "Barcode associated with Stock Item"
msgstr ""
-#: build/forms.py:36 build/models.py:1286
+#: build/forms.py:36 build/models.py:1293
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:35 common/models.py:1253
+#: build/templates/build/detail.html:35 common/models.py:1263
#: company/forms.py:42 company/templates/company/supplier_part.html:251
-#: order/models.py:796 order/models.py:1207 order/serializers.py:810
+#: order/models.py:805 order/models.py:1229 order/serializers.py:816
#: order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:145
-#: part/forms.py:161 part/forms.py:177 part/models.py:2629
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144
+#: part/forms.py:160 part/forms.py:176 part/models.py:2636
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:962 part/templates/part/detail.html:1048
+#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -603,7 +604,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:181
#: stock/templates/stock/item_base.html:262
#: stock/templates/stock/item_base.html:270
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:555
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:567
#: templates/js/translated/build.js:295 templates/js/translated/build.js:495
#: templates/js/translated/build.js:689 templates/js/translated/build.js:699
#: templates/js/translated/build.js:1075 templates/js/translated/build.js:1422
@@ -611,11 +612,11 @@ msgstr ""
#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056
#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859
#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036
-#: templates/js/translated/order.js:2150 templates/js/translated/part.js:900
-#: templates/js/translated/part.js:1855 templates/js/translated/part.js:1978
-#: templates/js/translated/part.js:2056 templates/js/translated/stock.js:383
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:750
-#: templates/js/translated/stock.js:2519 templates/js/translated/stock.js:2621
+#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906
+#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985
+#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:391
+#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758
+#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2779
msgid "Quantity"
msgstr ""
@@ -623,9 +624,9 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:41 order/serializers.py:814 stock/forms.py:81
-#: stock/serializers.py:314 templates/js/translated/stock.js:230
-#: templates/js/translated/stock.js:384
+#: build/forms.py:41 order/serializers.py:820 stock/forms.py:81
+#: stock/serializers.py:314 templates/js/translated/stock.js:238
+#: templates/js/translated/stock.js:392
msgid "Serial Numbers"
msgstr ""
@@ -649,18 +650,18 @@ msgstr ""
msgid "Confirm build cancellation"
msgstr ""
-#: build/models.py:133
+#: build/models.py:135
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:139 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:457
+#: templates/js/translated/build.js:457 templates/js/translated/stock.js:2290
msgid "Build Order"
msgstr "Tạo đơn hàng"
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:140 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:92
#: order/templates/order/so_sidebar.html:13
@@ -670,40 +671,40 @@ msgstr "Tạo đơn hàng"
msgid "Build Orders"
msgstr "Tạo đơn hàng"
-#: build/models.py:198
+#: build/models.py:200
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:210 order/models.py:536
-#: order/models.py:803 part/models.py:2638
+#: build/models.py:201 order/models.py:213 order/models.py:541
+#: order/models.py:812 part/models.py:2645
#: 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/translated/bom.js:547 templates/js/translated/build.js:1179
+#: templates/js/translated/bom.js:559 templates/js/translated/build.js:1179
#: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144
msgid "Reference"
msgstr ""
-#: build/models.py:210
+#: build/models.py:212
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:219 build/templates/build/build_base.html:164
+#: build/models.py:221 build/templates/build/build_base.html:164
#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:222
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:225 build/templates/build/build_base.html:77
+#: build/models.py:227 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
-#: order/models.py:856 order/models.py:930
-#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
-#: part/models.py:2204 part/models.py:2220 part/models.py:2239
-#: part/models.py:2256 part/models.py:2358 part/models.py:2480
-#: part/models.py:2613 part/models.py:2920 part/serializers.py:658
+#: order/models.py:876 order/models.py:950
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359
+#: part/models.py:2211 part/models.py:2227 part/models.py:2246
+#: part/models.py:2263 part/models.py:2365 part/models.py:2487
+#: part/models.py:2620 part/models.py:2927 part/serializers.py:658
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -713,205 +714,205 @@ msgstr ""
#: templates/InvenTree/search.html:80
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
-#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:326
-#: templates/js/translated/bom.js:505 templates/js/translated/build.js:680
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:338
+#: templates/js/translated/bom.js:517 templates/js/translated/build.js:680
#: templates/js/translated/build.js:1048 templates/js/translated/build.js:1419
#: templates/js/translated/build.js:1687 templates/js/translated/company.js:492
#: templates/js/translated/company.js:749 templates/js/translated/order.js:84
#: templates/js/translated/order.js:586 templates/js/translated/order.js:1004
#: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933
-#: templates/js/translated/order.js:2128 templates/js/translated/part.js:977
-#: templates/js/translated/part.js:1058 templates/js/translated/part.js:1225
-#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:719
-#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1526
-#: templates/js/translated/stock.js:2609
+#: templates/js/translated/order.js:2128 templates/js/translated/part.js:984
+#: templates/js/translated/part.js:1065 templates/js/translated/part.js:1232
+#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727
+#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1534
+#: templates/js/translated/stock.js:2767
msgid "Part"
msgstr "Nguyên liệu"
-#: build/models.py:233
+#: build/models.py:235
msgid "Select part to build"
msgstr ""
-#: build/models.py:238
+#: build/models.py:240
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:242
+#: build/models.py:244
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 templates/js/translated/build.js:1407
+#: build/models.py:249 templates/js/translated/build.js:1407
#: templates/js/translated/order.js:1564
msgid "Source Location"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:256
+#: build/models.py:258
msgid "Destination Location"
msgstr ""
-#: build/models.py:260
+#: build/models.py:262
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:264
+#: build/models.py:266
msgid "Build Quantity"
msgstr ""
-#: build/models.py:267
+#: build/models.py:269
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:271
+#: build/models.py:273
msgid "Completed items"
msgstr ""
-#: build/models.py:273
+#: build/models.py:275
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:277 part/templates/part/part_base.html:234
+#: build/models.py:279 part/templates/part/part_base.html:234
msgid "Build Status"
msgstr ""
-#: build/models.py:281
+#: build/models.py:283
msgid "Build status code"
msgstr ""
-#: build/models.py:285 stock/models.py:531
+#: build/models.py:287 stock/models.py:533
msgid "Batch Code"
msgstr ""
-#: build/models.py:289
+#: build/models.py:291
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:126 part/models.py:967
+#: build/models.py:294 order/models.py:129 part/models.py:969
#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:558
+#: build/models.py:298 order/models.py:563
msgid "Target completion date"
msgstr ""
-#: build/models.py:297
+#: build/models.py:299
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:252
+#: build/models.py:302 order/models.py:255
#: templates/js/translated/build.js:1758
msgid "Completion Date"
msgstr "Ngày hoàn thành"
-#: build/models.py:306
+#: build/models.py:308
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:1729
+#: build/models.py:316 templates/js/translated/build.js:1729
msgid "Issued by"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:323 build/templates/build/build_base.html:185
-#: build/templates/build/detail.html:116 order/models.py:140
+#: build/models.py:325 build/templates/build/build_base.html:185
+#: build/templates/build/detail.html:116 order/models.py:143
#: order/templates/order/order_base.html:170
-#: order/templates/order/sales_order_base.html:182 part/models.py:971
+#: order/templates/order/sales_order_base.html:182 part/models.py:973
#: report/templates/report/inventree_build_order_base.html:159
#: templates/js/translated/build.js:1741 templates/js/translated/order.js:864
msgid "Responsible"
msgstr ""
-#: build/models.py:324
+#: build/models.py:326
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:329 build/templates/build/detail.html:102
+#: build/models.py:331 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:525
+#: part/templates/part/part_base.html:354 stock/models.py:527
#: stock/templates/stock/item_base.html:373
msgid "External Link"
msgstr ""
-#: build/models.py:334 build/serializers.py:201
+#: build/models.py:336 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
-#: order/models.py:144 order/models.py:805 order/models.py:1051
+#: order/models.py:147 order/models.py:814 order/models.py:1071
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:17 part/models.py:956
-#: part/templates/part/detail.html:120 part/templates/part/part_sidebar.html:50
+#: order/templates/order/so_sidebar.html:17 part/models.py:958
+#: part/templates/part/detail.html:137 part/templates/part/part_sidebar.html:54
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:597
-#: stock/models.py:1867 stock/models.py:1973 stock/serializers.py:332
-#: stock/serializers.py:639 stock/serializers.py:737 stock/serializers.py:869
-#: stock/templates/stock/stock_sidebar.html:21
-#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:711
+#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:599
+#: stock/models.py:1895 stock/models.py:2001 stock/serializers.py:332
+#: stock/serializers.py:640 stock/serializers.py:738 stock/serializers.py:870
+#: stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:723
#: templates/js/translated/company.js:845 templates/js/translated/order.js:1149
#: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280
-#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1795
+#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1803
msgid "Notes"
msgstr ""
-#: build/models.py:335
+#: build/models.py:337
msgid "Extra build notes"
msgstr ""
-#: build/models.py:710
+#: build/models.py:717
msgid "No build output specified"
msgstr ""
-#: build/models.py:713
+#: build/models.py:720
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:716
+#: build/models.py:723
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1108
+#: build/models.py:1115
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1117
+#: build/models.py:1124
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1127
+#: build/models.py:1134
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1133 order/models.py:1167
+#: build/models.py:1140 order/models.py:1189
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1139
+#: build/models.py:1146
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1196
+#: build/models.py:1203
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1256 stock/templates/stock/item_base.html:345
+#: build/models.py:1263 stock/templates/stock/item_base.html:345
#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1660
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1257
+#: build/models.py:1264
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1273 build/serializers.py:388 order/serializers.py:690
-#: order/serializers.py:708 stock/serializers.py:577 stock/serializers.py:695
+#: build/models.py:1280 build/serializers.py:388 order/serializers.py:696
+#: order/serializers.py:714 stock/serializers.py:578 stock/serializers.py:696
#: stock/templates/stock/item_base.html:9
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:367
@@ -920,24 +921,24 @@ msgstr ""
#: templates/js/translated/order.js:85 templates/js/translated/order.js:1577
#: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837
#: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030
-#: templates/js/translated/stock.js:555 templates/js/translated/stock.js:720
-#: templates/js/translated/stock.js:2470
+#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728
+#: templates/js/translated/stock.js:2628
msgid "Stock Item"
msgstr ""
-#: build/models.py:1274
+#: build/models.py:1281
msgid "Source stock item"
msgstr ""
-#: build/models.py:1287
+#: build/models.py:1294
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1295
+#: build/models.py:1302
msgid "Install into"
msgstr ""
-#: build/models.py:1296
+#: build/models.py:1303
msgid "Destination stock item"
msgstr ""
@@ -962,16 +963,16 @@ msgid "This build output is not fully allocated"
msgstr ""
#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294
-#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:730
-#: stock/serializers.py:971 stock/templates/stock/item_base.html:313
+#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:731
+#: stock/serializers.py:972 stock/templates/stock/item_base.html:313
#: templates/js/translated/barcode.js:384
#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:480
#: templates/js/translated/build.js:1087 templates/js/translated/order.js:508
#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955
#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044
-#: templates/js/translated/part.js:179 templates/js/translated/stock.js:556
-#: templates/js/translated/stock.js:721 templates/js/translated/stock.js:928
-#: templates/js/translated/stock.js:1676 templates/js/translated/stock.js:2411
+#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564
+#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936
+#: templates/js/translated/stock.js:1684 templates/js/translated/stock.js:2569
msgid "Location"
msgstr ""
@@ -980,12 +981,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:137
-#: build/templates/build/detail.html:63 order/models.py:552
+#: build/templates/build/detail.html:63 order/models.py:557
#: order/serializers.py:247 stock/templates/stock/item_base.html:187
#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1716
#: templates/js/translated/order.js:591 templates/js/translated/order.js:840
-#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1651
-#: templates/js/translated/stock.js:2488 templates/js/translated/stock.js:2637
+#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:2646 templates/js/translated/stock.js:2795
msgid "Status"
msgstr "Trạng thái"
@@ -1021,8 +1022,8 @@ msgstr ""
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:313 build/serializers.py:362 part/models.py:2753
-#: part/models.py:2912
+#: build/serializers.py:313 build/serializers.py:362 part/models.py:2760
+#: part/models.py:2919
msgid "BOM Item"
msgstr ""
@@ -1038,16 +1039,16 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:394 stock/serializers.py:584
+#: build/serializers.py:394 stock/serializers.py:585
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:408 order/models.py:277 order/serializers.py:240
-#: stock/models.py:365 stock/models.py:1077 stock/serializers.py:305
+#: build/serializers.py:408 order/models.py:280 order/serializers.py:240
+#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:450 order/serializers.py:741
+#: build/serializers.py:450 order/serializers.py:747
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1060,7 +1061,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:491 order/serializers.py:984
+#: build/serializers.py:491 order/serializers.py:990
msgid "Allocation items must be provided"
msgstr ""
@@ -1164,13 +1165,13 @@ msgid "Completed"
msgstr "Đã hoàn thành"
#: build/templates/build/build_base.html:171
-#: build/templates/build/detail.html:95 order/models.py:927
-#: order/models.py:1023 order/templates/order/sales_order_base.html:9
+#: build/templates/build/detail.html:95 order/models.py:947
+#: order/models.py:1043 order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/order.js:1218
+#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2304
msgid "Sales Order"
msgstr ""
@@ -1224,7 +1225,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:50 order/models.py:878 stock/forms.py:136
+#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:136
#: templates/js/translated/order.js:592 templates/js/translated/order.js:1138
msgid "Destination"
msgstr ""
@@ -1239,7 +1240,7 @@ msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:331
-#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2644
+#: templates/js/translated/stock.js:1673 templates/js/translated/stock.js:2802
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:238
msgid "Batch"
@@ -1343,9 +1344,9 @@ msgstr ""
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:107
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:196
-#: part/templates/part/part_sidebar.html:48 stock/templates/stock/item.html:95
-#: stock/templates/stock/stock_sidebar.html:19
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:213
+#: part/templates/part/part_sidebar.html:52 stock/templates/stock/item.html:112
+#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr ""
@@ -1360,8 +1361,8 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:108
#: order/templates/order/sales_order_detail.html:127
#: order/templates/order/sales_order_detail.html:186
-#: part/templates/part/detail.html:124 stock/templates/stock/item.html:115
-#: stock/templates/stock/item.html:205
+#: part/templates/part/detail.html:141 stock/templates/stock/item.html:132
+#: stock/templates/stock/item.html:235
msgid "Edit Notes"
msgstr ""
@@ -1373,7 +1374,7 @@ msgstr ""
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:303
+#: build/templates/build/index.html:18 part/templates/part/detail.html:320
msgid "New Build Order"
msgstr ""
@@ -1453,23 +1454,23 @@ msgstr ""
msgid "Delete Build Order"
msgstr ""
-#: common/files.py:67
+#: common/files.py:65
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
-#: common/files.py:69
+#: common/files.py:67
msgid "Error reading file (invalid encoding)"
msgstr ""
-#: common/files.py:74
+#: common/files.py:72
msgid "Error reading file (invalid format)"
msgstr ""
-#: common/files.py:76
+#: common/files.py:74
msgid "Error reading file (incorrect dimension)"
msgstr ""
-#: common/files.py:78
+#: common/files.py:76
msgid "Error reading file (data could be corrupted)"
msgstr ""
@@ -1490,740 +1491,828 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:344 common/models.py:998 common/models.py:1206
-msgid "Settings key (must be unique - case insensitive"
+#: common/models.py:352
+msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:346
+#: common/models.py:354
msgid "Settings value"
msgstr ""
-#: common/models.py:380
+#: common/models.py:388
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:400
+#: common/models.py:408
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:411
+#: common/models.py:419
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:434
+#: common/models.py:442
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:553
+#: common/models.py:561
msgid "No group"
msgstr ""
-#: common/models.py:595
+#: common/models.py:603
msgid "Restart required"
msgstr ""
-#: common/models.py:596
+#: common/models.py:604
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:603
+#: common/models.py:611
msgid "InvenTree Instance Name"
msgstr ""
-#: common/models.py:605
+#: common/models.py:613
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:609
+#: common/models.py:617
msgid "Use instance name"
msgstr ""
-#: common/models.py:610
+#: common/models.py:618
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:616 company/models.py:100 company/models.py:101
+#: common/models.py:624 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr ""
-#: common/models.py:617
+#: common/models.py:625
msgid "Internal company name"
msgstr ""
-#: common/models.py:622
+#: common/models.py:630
msgid "Base URL"
msgstr ""
-#: common/models.py:623
+#: common/models.py:631
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:629
+#: common/models.py:637
msgid "Default Currency"
msgstr ""
-#: common/models.py:630
+#: common/models.py:638
msgid "Default currency"
msgstr ""
-#: common/models.py:636
+#: common/models.py:644
msgid "Download from URL"
msgstr ""
-#: common/models.py:637
+#: common/models.py:645
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:643 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:651 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
-#: common/models.py:644
+#: common/models.py:652
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:650
+#: common/models.py:658
msgid "IPN Regex"
msgstr ""
-#: common/models.py:651
+#: common/models.py:659
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:655
+#: common/models.py:663
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:656
+#: common/models.py:664
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:662
+#: common/models.py:670
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:663
+#: common/models.py:671
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:669
+#: common/models.py:677
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:670
+#: common/models.py:678
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:676
+#: common/models.py:684
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:677
+#: common/models.py:685
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:683
+#: common/models.py:691
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:684
+#: common/models.py:692
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:690
+#: common/models.py:698
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:691
+#: common/models.py:699
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:697 part/models.py:2482 report/models.py:187
+#: common/models.py:705 part/models.py:2489 report/models.py:187
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:422
msgid "Template"
msgstr ""
-#: common/models.py:698
+#: common/models.py:706
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:704 part/models.py:919 templates/js/translated/bom.js:1068
+#: common/models.py:712 part/models.py:921 templates/js/translated/bom.js:1082
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:434
msgid "Assembly"
msgstr ""
-#: common/models.py:705
+#: common/models.py:713
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:711 part/models.py:925
+#: common/models.py:719 part/models.py:927
#: templates/js/translated/table_filters.js:438
msgid "Component"
msgstr ""
-#: common/models.py:712
+#: common/models.py:720
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:718 part/models.py:936
+#: common/models.py:726 part/models.py:938
msgid "Purchaseable"
msgstr ""
-#: common/models.py:719
+#: common/models.py:727
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:725 part/models.py:941
+#: common/models.py:733 part/models.py:943
#: templates/js/translated/table_filters.js:446
msgid "Salable"
msgstr ""
-#: common/models.py:726
+#: common/models.py:734
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:732 part/models.py:931
+#: common/models.py:740 part/models.py:933
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
#: templates/js/translated/table_filters.js:450
msgid "Trackable"
msgstr ""
-#: common/models.py:733
+#: common/models.py:741
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:739 part/models.py:951
+#: common/models.py:747 part/models.py:953
#: part/templates/part/part_base.html:147
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr ""
-#: common/models.py:740
+#: common/models.py:748
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:746
+#: common/models.py:754
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:747
+#: common/models.py:755
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:753
+#: common/models.py:761
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:754
+#: common/models.py:762
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:765
+#: common/models.py:773
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:766
+#: common/models.py:774
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:772
+#: common/models.py:780
msgid "Show related parts"
msgstr ""
-#: common/models.py:773
+#: common/models.py:781
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:779
+#: common/models.py:787
msgid "Create initial stock"
msgstr ""
-#: common/models.py:780
+#: common/models.py:788
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:786
+#: common/models.py:794
msgid "Internal Prices"
msgstr ""
-#: common/models.py:787
+#: common/models.py:795
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:793
+#: common/models.py:801
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:794
+#: common/models.py:802
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:800
+#: common/models.py:808
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:801
+#: common/models.py:809
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:808
+#: common/models.py:816
msgid "Enable Reports"
msgstr ""
-#: common/models.py:809
+#: common/models.py:817
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:815 templates/stats.html:25
+#: common/models.py:823 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:816
+#: common/models.py:824
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:822
+#: common/models.py:830
msgid "Page Size"
msgstr ""
-#: common/models.py:823
+#: common/models.py:831
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:833
+#: common/models.py:841
msgid "Test Reports"
msgstr ""
-#: common/models.py:834
+#: common/models.py:842
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:840
+#: common/models.py:848
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:841
+#: common/models.py:849
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:847
+#: common/models.py:855
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:848
+#: common/models.py:856
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:854
+#: common/models.py:862
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:855
+#: common/models.py:863
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:857
+#: common/models.py:865
msgid "days"
msgstr ""
-#: common/models.py:862
+#: common/models.py:870
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:863
+#: common/models.py:871
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:869
+#: common/models.py:877
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:870
+#: common/models.py:878
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:876
-msgid "Group by Part"
-msgstr ""
-
-#: common/models.py:877
-msgid "Group stock items by part reference in table views"
-msgstr ""
-
-#: common/models.py:883
+#: common/models.py:884
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:884
+#: common/models.py:885
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:889
+#: common/models.py:890
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:890
+#: common/models.py:891
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:894
+#: common/models.py:895
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:895
+#: common/models.py:896
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:900
+#: common/models.py:901
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:901
+#: common/models.py:902
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:907
+#: common/models.py:908
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:908
+#: common/models.py:909
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:913
+#: common/models.py:914
msgid "Enable registration"
msgstr ""
-#: common/models.py:914
+#: common/models.py:915
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:919
+#: common/models.py:920
msgid "Enable SSO"
msgstr ""
-#: common/models.py:920
+#: common/models.py:921
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:925
+#: common/models.py:926
msgid "Email required"
msgstr ""
-#: common/models.py:926
+#: common/models.py:927
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:931
+#: common/models.py:932
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:932
+#: common/models.py:933
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:937
+#: common/models.py:938
msgid "Mail twice"
msgstr ""
-#: common/models.py:938
+#: common/models.py:939
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:943
+#: common/models.py:944
msgid "Password twice"
msgstr ""
-#: common/models.py:944
+#: common/models.py:945
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:949
+#: common/models.py:950
msgid "Group on signup"
msgstr ""
-#: common/models.py:950
+#: common/models.py:951
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:955
+#: common/models.py:956
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:956
+#: common/models.py:957
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:961
+#: common/models.py:964
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:962
+#: common/models.py:965
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:968
+#: common/models.py:971
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:969
+#: common/models.py:972
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:975
+#: common/models.py:978
msgid "Enable app integration"
msgstr ""
-#: common/models.py:976
+#: common/models.py:979
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:982
+#: common/models.py:985
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:983
+#: common/models.py:986
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1029
+#: common/models.py:992
+msgid "Enable event integration"
+msgstr ""
+
+#: common/models.py:993
+msgid "Enable plugins to respond to internal events"
+msgstr ""
+
+#: common/models.py:1008 common/models.py:1216
+msgid "Settings key (must be unique - case insensitive"
+msgstr ""
+
+#: common/models.py:1039
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1030
+#: common/models.py:1040
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1035
+#: common/models.py:1045
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1036
+#: common/models.py:1046
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1041
+#: common/models.py:1051
msgid "Show latest parts"
msgstr "Hiển thị nguyên liệu mới nhất"
-#: common/models.py:1042
+#: common/models.py:1052
msgid "Show latest parts on the homepage"
msgstr "Hiển thị nguyên liệu mới nhất trên trang chủ"
-#: common/models.py:1047
+#: common/models.py:1057
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1048
+#: common/models.py:1058
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1054
+#: common/models.py:1064
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1055
+#: common/models.py:1065
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1070
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1061
+#: common/models.py:1071
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1066
+#: common/models.py:1076
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1067
+#: common/models.py:1077
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1072
+#: common/models.py:1082
msgid "Show low stock"
msgstr ""
-#: common/models.py:1073
+#: common/models.py:1083
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1078
+#: common/models.py:1088
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1079
+#: common/models.py:1089
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1084
+#: common/models.py:1094
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1085
+#: common/models.py:1095
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1090
+#: common/models.py:1100
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1091
+#: common/models.py:1101
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1096
+#: common/models.py:1106
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1097
+#: common/models.py:1107
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1102
+#: common/models.py:1112
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1103
+#: common/models.py:1113
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1108
+#: common/models.py:1118
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1109
+#: common/models.py:1119
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1114
+#: common/models.py:1124
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1115
+#: common/models.py:1125
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1120
+#: common/models.py:1130
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1121
+#: common/models.py:1131
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1136
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1127
+#: common/models.py:1137
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1142
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1143
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1149
msgid "Inline label display"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1150
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1156
msgid "Inline report display"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1157
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1163
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1164
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1170
msgid "Search Show Stock"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1171
msgid "Display stock levels in search preview window"
msgstr ""
-#: common/models.py:1167
+#: common/models.py:1177
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1178
msgid "Hide inactive parts in search preview window"
msgstr ""
-#: common/models.py:1174
+#: common/models.py:1184
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1175
+#: common/models.py:1185
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1181
+#: common/models.py:1191
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1182
+#: common/models.py:1192
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1188
+#: common/models.py:1198
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1199
msgid "InvenTree navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1254 company/forms.py:43
+#: common/models.py:1264 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1261 company/serializers.py:264
+#: common/models.py:1271 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:909 templates/js/translated/part.js:1860
+#: templates/js/translated/part.js:915 templates/js/translated/part.js:1867
msgid "Price"
msgstr ""
-#: common/models.py:1262
+#: common/models.py:1272
msgid "Unit price at specified quantity"
msgstr ""
+#: common/models.py:1429 common/models.py:1568
+msgid "Endpoint"
+msgstr ""
+
+#: common/models.py:1430
+msgid "Endpoint at which this webhook is received"
+msgstr ""
+
+#: common/models.py:1439
+msgid "Name for this webhook"
+msgstr ""
+
+#: common/models.py:1444 part/models.py:948 plugin/models.py:46
+#: templates/js/translated/table_filters.js:34
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:295
+#: templates/js/translated/table_filters.js:417
+msgid "Active"
+msgstr ""
+
+#: common/models.py:1445
+msgid "Is this webhook active"
+msgstr ""
+
+#: common/models.py:1459
+msgid "Token"
+msgstr ""
+
+#: common/models.py:1460
+msgid "Token for access"
+msgstr ""
+
+#: common/models.py:1467
+msgid "Secret"
+msgstr ""
+
+#: common/models.py:1468
+msgid "Shared secret for HMAC"
+msgstr ""
+
+#: common/models.py:1535
+msgid "Message ID"
+msgstr ""
+
+#: common/models.py:1536
+msgid "Unique identifier for this message"
+msgstr ""
+
+#: common/models.py:1544
+msgid "Host"
+msgstr ""
+
+#: common/models.py:1545
+msgid "Host from which this message was received"
+msgstr ""
+
+#: common/models.py:1552
+msgid "Header"
+msgstr ""
+
+#: common/models.py:1553
+msgid "Header of this message"
+msgstr ""
+
+#: common/models.py:1559
+msgid "Body"
+msgstr ""
+
+#: common/models.py:1560
+msgid "Body of this message"
+msgstr ""
+
+#: common/models.py:1569
+msgid "Endpoint on which this message was received"
+msgstr ""
+
+#: common/models.py:1574
+msgid "Worked on"
+msgstr ""
+
+#: common/models.py:1575
+msgid "Was the work on this message finished?"
+msgstr ""
+
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
#: part/templates/part/bom_upload/upload_file.html:52
-#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
-#: part/views.py:764
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:213
+#: part/views.py:773
msgid "Upload File"
msgstr ""
#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
-#: part/views.py:765
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:214
+#: part/views.py:774
msgid "Match Fields"
msgstr ""
@@ -2315,7 +2404,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:838
+#: company/models.py:139 part/models.py:840
msgid "Image"
msgstr ""
@@ -2352,8 +2441,8 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:469
-#: stock/templates/stock/item_base.html:142
+#: company/models.py:320 company/models.py:535 stock/models.py:471
+#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:328
msgid "Base Part"
msgstr ""
@@ -2380,7 +2469,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:818 templates/js/translated/order.js:1038
-#: templates/js/translated/part.js:245 templates/js/translated/part.js:889
+#: templates/js/translated/part.js:245 templates/js/translated/part.js:895
msgid "MPN"
msgstr ""
@@ -2409,8 +2498,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1960 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:709 templates/js/translated/stock.js:1296
+#: stock/models.py:1988 templates/js/translated/company.js:647
+#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1304
msgid "Value"
msgstr ""
@@ -2418,10 +2507,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:913 part/models.py:2450
+#: company/models.py:429 part/models.py:915 part/models.py:2457
#: part/templates/part/part_base.html:288
-#: templates/InvenTree/settings/settings.html:284
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:715
+#: templates/InvenTree/settings/settings.html:287
+#: templates/js/translated/company.js:653 templates/js/translated/part.js:721
msgid "Units"
msgstr ""
@@ -2434,13 +2523,13 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:78
-#: company/templates/company/supplier_part.html:87 order/models.py:224
+#: company/templates/company/supplier_part.html:87 order/models.py:227
#: order/templates/order/order_base.html:112
-#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
-#: part/bom.py:247 stock/templates/stock/item_base.html:397
+#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237
+#: part/bom.py:265 stock/templates/stock/item_base.html:397
#: templates/js/translated/company.js:337
#: templates/js/translated/company.js:774 templates/js/translated/order.js:823
-#: templates/js/translated/part.js:215 templates/js/translated/part.js:857
+#: templates/js/translated/part.js:215 templates/js/translated/part.js:863
#: templates/js/translated/table_filters.js:393
msgid "Supplier"
msgstr "Nhà cung cấp"
@@ -2450,8 +2539,8 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:1025
-#: templates/js/translated/part.js:226 templates/js/translated/part.js:875
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1025
+#: templates/js/translated/part.js:226 templates/js/translated/part.js:881
msgid "SKU"
msgstr ""
@@ -2472,22 +2561,22 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:119
-#: part/models.py:2641 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2648 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:580 part/models.py:1779
+#: company/models.py:580 part/models.py:1781
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1779
+#: company/models.py:580 part/models.py:1781
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:493 stock/templates/stock/item_base.html:338
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1791
+#: stock/models.py:495 stock/templates/stock/item_base.html:338
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1799
msgid "Packaging"
msgstr ""
@@ -2495,7 +2584,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1781
+#: company/models.py:584 part/models.py:1783
msgid "multiple"
msgstr ""
@@ -2554,12 +2643,12 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:83 order/models.py:547
-#: order/templates/order/sales_order_base.html:115 stock/models.py:512
-#: stock/models.py:513 stock/serializers.py:625
+#: company/templates/company/company_base.html:83 order/models.py:552
+#: order/templates/order/sales_order_base.html:115 stock/models.py:514
+#: stock/models.py:515 stock/serializers.py:626
#: stock/templates/stock/item_base.html:290
#: templates/js/translated/company.js:329 templates/js/translated/order.js:1240
-#: templates/js/translated/stock.js:2452
+#: templates/js/translated/stock.js:2610
#: templates/js/translated/table_filters.js:397
msgid "Customer"
msgstr ""
@@ -2590,7 +2679,7 @@ msgstr ""
#: company/templates/company/detail.html:20
#: company/templates/company/manufacturer_part.html:118
-#: part/templates/part/detail.html:336
+#: part/templates/part/detail.html:353
msgid "New Supplier Part"
msgstr ""
@@ -2598,8 +2687,8 @@ msgstr ""
#: company/templates/company/detail.html:79
#: company/templates/company/manufacturer_part.html:127
#: company/templates/company/manufacturer_part.html:156
-#: part/templates/part/category.html:171 part/templates/part/detail.html:345
-#: part/templates/part/detail.html:374
+#: part/templates/part/category.html:171 part/templates/part/detail.html:362
+#: part/templates/part/detail.html:391
msgid "Options"
msgstr ""
@@ -2627,7 +2716,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:364
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:381
msgid "New Manufacturer Part"
msgstr ""
@@ -2641,7 +2730,7 @@ msgstr ""
#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:68 part/templates/part/part_sidebar.html:33
+#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
@@ -2663,7 +2752,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:91 part/templates/part/part_sidebar.html:37
+#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:41
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
@@ -2691,13 +2780,13 @@ msgstr ""
#: company/templates/company/detail.html:384
#: company/templates/company/manufacturer_part.html:215
-#: part/templates/part/detail.html:418
+#: part/templates/part/detail.html:435
msgid "Delete Supplier Parts?"
msgstr ""
#: company/templates/company/detail.html:385
#: company/templates/company/manufacturer_part.html:216
-#: part/templates/part/detail.html:419
+#: part/templates/part/detail.html:436
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2714,7 +2803,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:34
#: company/templates/company/supplier_part.html:159
-#: part/templates/part/detail.html:71 part/templates/part/part_base.html:76
+#: part/templates/part/detail.html:88 part/templates/part/part_base.html:76
msgid "Order part"
msgstr ""
@@ -2735,34 +2824,34 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:114
#: company/templates/company/supplier_part.html:15 company/views.py:49
-#: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163
+#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:163
#: templates/InvenTree/search.html:188 templates/navbar.html:45
msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
-#: part/templates/part/detail.html:347
+#: part/templates/part/detail.html:364
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
#: company/templates/company/manufacturer_part.html:158
#: company/templates/company/manufacturer_part.html:254
-#: part/templates/part/detail.html:347 part/templates/part/detail.html:376
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:393
#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31
-#: users/models.py:210
+#: users/models.py:212
msgid "Delete"
msgstr ""
#: company/templates/company/manufacturer_part.html:143
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:17
-#: part/templates/part/detail.html:170 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:187 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:147
-#: part/templates/part/detail.html:175
+#: part/templates/part/detail.html:192
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
@@ -2773,7 +2862,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:191
-#: part/templates/part/detail.html:862
+#: part/templates/part/detail.html:892
msgid "Add Parameter"
msgstr ""
@@ -2802,9 +2891,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:477
+#: company/templates/company/supplier_part.html:24 stock/models.py:479
#: stock/templates/stock/item_base.html:402
-#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1748
+#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1756
msgid "Supplier Part"
msgstr ""
@@ -2830,7 +2919,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:167
-#: templates/js/translated/stock.js:360
+#: templates/js/translated/stock.js:368
msgid "New Stock Item"
msgstr ""
@@ -2840,7 +2929,7 @@ msgid "Supplier Part Orders"
msgstr ""
#: company/templates/company/supplier_part.html:160
-#: part/templates/part/detail.html:72
+#: part/templates/part/detail.html:89
msgid "Order Part"
msgstr ""
@@ -2851,7 +2940,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1619
+#: part/templates/part/prices.html:271 part/views.py:1628
msgid "Add Price Break"
msgstr ""
@@ -2859,11 +2948,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1681
+#: company/templates/company/supplier_part.html:224 part/views.py:1690
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1667
+#: company/templates/company/supplier_part.html:238 part/views.py:1676
msgid "Edit Price Break"
msgstr ""
@@ -2881,10 +2970,10 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:150
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/bom.js:328 templates/js/translated/part.js:489
-#: templates/js/translated/part.js:624 templates/js/translated/part.js:1118
-#: templates/js/translated/part.js:1279 templates/js/translated/stock.js:927
-#: templates/js/translated/stock.js:1580 templates/navbar.html:28
+#: templates/js/translated/bom.js:340 templates/js/translated/part.js:495
+#: templates/js/translated/part.js:630 templates/js/translated/part.js:1125
+#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:935
+#: templates/js/translated/stock.js:1588 templates/navbar.html:28
msgid "Stock"
msgstr "Kiện hàng"
@@ -2907,8 +2996,8 @@ msgstr ""
#: stock/templates/stock/location.html:151
#: stock/templates/stock/location.html:163
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2351
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2509
+#: templates/stats.html:105 templates/stats.html:114 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2937,20 +3026,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:584
+#: company/views.py:129 part/views.py:593
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:616
+#: company/views.py:158 part/views.py:625
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:623
+#: company/views.py:165 part/views.py:632
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:632
+#: company/views.py:174 part/views.py:641
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3036,282 +3125,282 @@ msgstr ""
msgid "Cancel order"
msgstr ""
-#: order/models.py:122
+#: order/models.py:125
msgid "Order description"
msgstr ""
-#: order/models.py:124
+#: order/models.py:127
msgid "Link to external page"
msgstr ""
-#: order/models.py:132
+#: order/models.py:135
msgid "Created By"
msgstr ""
-#: order/models.py:139
+#: order/models.py:142
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:144
+#: order/models.py:147
msgid "Order notes"
msgstr ""
-#: order/models.py:211 order/models.py:537
+#: order/models.py:214 order/models.py:542
msgid "Order reference"
msgstr ""
-#: order/models.py:216 order/models.py:552
+#: order/models.py:219 order/models.py:557
msgid "Purchase order status"
msgstr ""
-#: order/models.py:225
+#: order/models.py:228
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:228 order/templates/order/order_base.html:118
+#: order/models.py:231 order/templates/order/order_base.html:118
#: templates/js/translated/order.js:832
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:228
+#: order/models.py:231
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:235
+#: order/models.py:238
msgid "received by"
msgstr ""
-#: order/models.py:240
+#: order/models.py:243
msgid "Issue Date"
msgstr ""
-#: order/models.py:241
+#: order/models.py:244
msgid "Date order was issued"
msgstr ""
-#: order/models.py:246
+#: order/models.py:249
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:247
+#: order/models.py:250
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:253
+#: order/models.py:256
msgid "Date order was completed"
msgstr ""
-#: order/models.py:282
+#: order/models.py:285
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:411
-msgid "Quantity must be an integer"
-msgstr ""
-
-#: order/models.py:415
+#: order/models.py:420
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:548
+#: order/models.py:553
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:554
+#: order/models.py:559
msgid "Customer Reference "
msgstr ""
-#: order/models.py:554
+#: order/models.py:559
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:559
+#: order/models.py:564
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:562 order/models.py:1028
+#: order/models.py:567 order/models.py:1048
#: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429
msgid "Shipment Date"
msgstr ""
-#: order/models.py:569
+#: order/models.py:574
msgid "shipped by"
msgstr ""
-#: order/models.py:635
+#: order/models.py:640
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:639
+#: order/models.py:644
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:642
+#: order/models.py:647
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:645
+#: order/models.py:650
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:797
+#: order/models.py:806
msgid "Item quantity"
msgstr ""
-#: order/models.py:803
+#: order/models.py:812
msgid "Line item reference"
msgstr ""
-#: order/models.py:805
+#: order/models.py:814
msgid "Line item notes"
msgstr ""
-#: order/models.py:835 order/models.py:926 order/models.py:1022
-#: templates/js/translated/order.js:1820
+#: order/models.py:842
+msgid "Supplier part must match supplier"
+msgstr ""
+
+#: order/models.py:855 order/models.py:946 order/models.py:1042
+#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2271
msgid "Order"
msgstr ""
-#: order/models.py:836 order/templates/order/order_base.html:9
+#: order/models.py:856 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:352
-#: templates/js/translated/order.js:801 templates/js/translated/part.js:832
-#: templates/js/translated/stock.js:1725 templates/js/translated/stock.js:2433
+#: templates/js/translated/order.js:801 templates/js/translated/part.js:838
+#: templates/js/translated/stock.js:1733 templates/js/translated/stock.js:2591
msgid "Purchase Order"
msgstr "Đơn hàng"
-#: order/models.py:857
+#: order/models.py:877
msgid "Supplier part"
msgstr ""
-#: order/models.py:864 order/templates/order/order_base.html:163
+#: order/models.py:884 order/templates/order/order_base.html:163
#: templates/js/translated/order.js:589 templates/js/translated/order.js:1118
-#: templates/js/translated/part.js:904 templates/js/translated/part.js:930
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:937
#: templates/js/translated/table_filters.js:317
msgid "Received"
msgstr ""
-#: order/models.py:865
+#: order/models.py:885
msgid "Number of items received"
msgstr ""
-#: order/models.py:872 part/templates/part/prices.html:176 stock/models.py:606
+#: order/models.py:892 part/templates/part/prices.html:176 stock/models.py:608
#: stock/serializers.py:170 stock/templates/stock/item_base.html:359
-#: templates/js/translated/stock.js:1779
+#: templates/js/translated/stock.js:1787
msgid "Purchase Price"
msgstr "Giá mua"
-#: order/models.py:873
+#: order/models.py:893
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:881
+#: order/models.py:901
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:936 part/templates/part/part_pricing.html:112
+#: order/models.py:956 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:937
+#: order/models.py:957
msgid "Unit sale price"
msgstr ""
-#: order/models.py:942
+#: order/models.py:962
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1029
+#: order/models.py:1049
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1036
+#: order/models.py:1056
msgid "Checked By"
msgstr ""
-#: order/models.py:1037
+#: order/models.py:1057
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1045
+#: order/models.py:1065
msgid "Shipment number"
msgstr ""
-#: order/models.py:1052
+#: order/models.py:1072
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1059
+#: order/models.py:1079
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1060
+#: order/models.py:1080
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1070
+#: order/models.py:1090
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1073
+#: order/models.py:1093
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1149 order/models.py:1151
+#: order/models.py:1171 order/models.py:1173
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1155
+#: order/models.py:1177
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1157
+#: order/models.py:1179
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1160
+#: order/models.py:1182
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1164
+#: order/models.py:1186
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:1170 order/serializers.py:734
+#: order/models.py:1192 order/serializers.py:740
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1173
+#: order/models.py:1195
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1174
+#: order/models.py:1196
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1182
+#: order/models.py:1204
msgid "Line"
msgstr ""
-#: order/models.py:1190 order/serializers.py:825 order/serializers.py:953
-#: templates/js/translated/model_renderers.js:251
+#: order/models.py:1212 order/serializers.py:831 order/serializers.py:959
+#: templates/js/translated/model_renderers.js:285
msgid "Shipment"
msgstr ""
-#: order/models.py:1191
+#: order/models.py:1213
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1203
+#: order/models.py:1225
msgid "Item"
msgstr ""
-#: order/models.py:1204
+#: order/models.py:1226
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1207
+#: order/models.py:1229
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3319,7 +3408,7 @@ msgstr ""
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:211 order/serializers.py:790
+#: order/serializers.py:211 order/serializers.py:796
msgid "Line Item"
msgstr ""
@@ -3355,39 +3444,39 @@ msgstr ""
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:581
+#: order/serializers.py:587
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:649
+#: order/serializers.py:655
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:699 order/serializers.py:802
+#: order/serializers.py:705 order/serializers.py:808
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:721
+#: order/serializers.py:727
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:815
+#: order/serializers.py:821
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:839 order/serializers.py:964
+#: order/serializers.py:845 order/serializers.py:970
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:842 order/serializers.py:967
+#: order/serializers.py:848 order/serializers.py:973
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:894
+#: order/serializers.py:900
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:904
+#: order/serializers.py:910
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3441,6 +3530,7 @@ msgstr ""
#: order/templates/order/order_base.html:94
#: order/templates/order/sales_order_base.html:89
+#: templates/js/translated/stock.js:2327
msgid "Order Status"
msgstr ""
@@ -3538,7 +3628,7 @@ msgstr ""
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/build.js:300 templates/js/translated/build.js:1311
#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488
-#: templates/js/translated/stock.js:593 templates/js/translated/stock.js:761
+#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769
msgid "Remove row"
msgstr ""
@@ -3729,7 +3819,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:48
-#: templates/js/translated/bom.js:720 templates/js/translated/build.js:1243
+#: templates/js/translated/bom.js:732 templates/js/translated/build.js:1243
msgid "Actions"
msgstr ""
@@ -3832,447 +3922,448 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:125 part/models.py:81 part/models.py:847
+#: part/bom.py:125 part/models.py:83 part/models.py:849
#: part/templates/part/category.html:108 part/templates/part/part_base.html:338
msgid "Default Location"
msgstr ""
-#: part/bom.py:126 part/templates/part/part_base.html:185
+#: part/bom.py:126 templates/email/low_stock_notification.html:17
+msgid "Total Stock"
+msgstr ""
+
+#: part/bom.py:127 part/templates/part/part_base.html:185
msgid "Available Stock"
msgstr ""
-#: part/forms.py:85
+#: part/bom.py:128 part/templates/part/part_base.html:203
+#: templates/js/translated/part.js:1301
+msgid "On Order"
+msgstr ""
+
+#: part/forms.py:84
msgid "Select part category"
msgstr ""
-#: part/forms.py:122
+#: part/forms.py:121
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:126
+#: part/forms.py:125
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:146
+#: part/forms.py:145
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:82
+#: part/models.py:84
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:85
+#: part/models.py:87
msgid "Default keywords"
msgstr ""
-#: part/models.py:85
+#: part/models.py:87
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:95 part/models.py:2526 part/templates/part/category.html:15
+#: part/models.py:97 part/models.py:2533 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:96 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/stats.html:84
+#: part/models.py:98 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/stats.html:96
#: users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:358 part/templates/part/cat_link.html:3
+#: part/models.py:360 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:17 part/templates/part/category.html:133
#: part/templates/part/category.html:153
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:37
-#: templates/js/translated/part.js:1656 templates/navbar.html:21
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+#: templates/js/translated/part.js:1663 templates/navbar.html:21
+#: templates/stats.html:92 templates/stats.html:101 users/models.py:41
msgid "Parts"
msgstr "Nguyên liệu"
-#: part/models.py:450
+#: part/models.py:452
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:500 part/models.py:512
+#: part/models.py:502 part/models.py:514
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:642
+#: part/models.py:644
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:646
+#: part/models.py:648
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:651
+#: part/models.py:653
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:746
+#: part/models.py:748
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:771
+#: part/models.py:773
msgid "Part name"
msgstr ""
-#: part/models.py:778
+#: part/models.py:780
msgid "Is Template"
msgstr ""
-#: part/models.py:779
+#: part/models.py:781
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:789
+#: part/models.py:791
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:790
+#: part/models.py:792
msgid "Variant Of"
msgstr ""
-#: part/models.py:796
+#: part/models.py:798
msgid "Part description"
msgstr ""
-#: part/models.py:801 part/templates/part/category.html:86
+#: part/models.py:803 part/templates/part/category.html:86
#: part/templates/part/part_base.html:302
msgid "Keywords"
msgstr ""
-#: part/models.py:802
+#: part/models.py:804
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:809 part/models.py:2276 part/models.py:2525
+#: part/models.py:811 part/models.py:2283 part/models.py:2532
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:183
-#: templates/js/translated/part.js:1261
+#: templates/InvenTree/settings/settings.html:186
+#: templates/js/translated/part.js:1268
msgid "Category"
msgstr ""
-#: part/models.py:810
+#: part/models.py:812
msgid "Part category"
msgstr ""
-#: part/models.py:815 part/templates/part/part_base.html:274
-#: templates/js/translated/part.js:612 templates/js/translated/part.js:1214
-#: templates/js/translated/stock.js:1552
+#: part/models.py:817 part/templates/part/part_base.html:274
+#: templates/js/translated/part.js:618 templates/js/translated/part.js:1221
+#: templates/js/translated/stock.js:1560
msgid "IPN"
msgstr ""
-#: part/models.py:816
+#: part/models.py:818
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:822
+#: part/models.py:824
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:823 part/templates/part/part_base.html:281
-#: report/models.py:200 templates/js/translated/part.js:616
+#: part/models.py:825 part/templates/part/part_base.html:281
+#: report/models.py:200 templates/js/translated/part.js:622
msgid "Revision"
msgstr ""
-#: part/models.py:845
+#: part/models.py:847
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:892 part/templates/part/part_base.html:347
+#: part/models.py:894 part/templates/part/part_base.html:347
msgid "Default Supplier"
msgstr ""
-#: part/models.py:893
+#: part/models.py:895
msgid "Default supplier part"
msgstr ""
-#: part/models.py:900
+#: part/models.py:902
msgid "Default Expiry"
msgstr ""
-#: part/models.py:901
+#: part/models.py:903
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:906 part/templates/part/part_base.html:196
+#: part/models.py:908 part/templates/part/part_base.html:196
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:907
+#: part/models.py:909
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:914
+#: part/models.py:916
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:920
+#: part/models.py:922
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:926
+#: part/models.py:928
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:932
+#: part/models.py:934
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:937
+#: part/models.py:939
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:942
+#: part/models.py:944
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:946 plugin/models.py:46
-#: templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:96
-#: templates/js/translated/table_filters.js:295
-#: templates/js/translated/table_filters.js:417
-msgid "Active"
-msgstr ""
-
-#: part/models.py:947
+#: part/models.py:949
msgid "Is this part active?"
msgstr ""
-#: part/models.py:952
+#: part/models.py:954
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:957
+#: part/models.py:959
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:960
+#: part/models.py:962
msgid "BOM checksum"
msgstr ""
-#: part/models.py:960
+#: part/models.py:962
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:963
+#: part/models.py:965
msgid "BOM checked by"
msgstr ""
-#: part/models.py:965
+#: part/models.py:967
msgid "BOM checked date"
msgstr ""
-#: part/models.py:969
+#: part/models.py:971
msgid "Creation User"
msgstr ""
-#: part/models.py:1781
+#: part/models.py:1783
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2326
+#: part/models.py:2333
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2343
+#: part/models.py:2350
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2363 templates/js/translated/part.js:1707
-#: templates/js/translated/stock.js:1276
+#: part/models.py:2370 templates/js/translated/part.js:1714
+#: templates/js/translated/stock.js:1284
msgid "Test Name"
msgstr ""
-#: part/models.py:2364
+#: part/models.py:2371
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2376
msgid "Test Description"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2377
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2375 templates/js/translated/part.js:1716
+#: part/models.py:2382 templates/js/translated/part.js:1723
#: templates/js/translated/table_filters.js:281
msgid "Required"
msgstr ""
-#: part/models.py:2376
+#: part/models.py:2383
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2381 templates/js/translated/part.js:1724
+#: part/models.py:2388 templates/js/translated/part.js:1731
msgid "Requires Value"
msgstr ""
-#: part/models.py:2382
+#: part/models.py:2389
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2387 templates/js/translated/part.js:1731
+#: part/models.py:2394 templates/js/translated/part.js:1738
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2388
+#: part/models.py:2395
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2399
+#: part/models.py:2406
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2435
+#: part/models.py:2442
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2443
+#: part/models.py:2450
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2450
+#: part/models.py:2457
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2480
+#: part/models.py:2487
msgid "Parent Part"
msgstr ""
-#: part/models.py:2482 part/models.py:2531 part/models.py:2532
-#: templates/InvenTree/settings/settings.html:178
+#: part/models.py:2489 part/models.py:2538 part/models.py:2539
+#: templates/InvenTree/settings/settings.html:181
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2484
+#: part/models.py:2491
msgid "Data"
msgstr ""
-#: part/models.py:2484
+#: part/models.py:2491
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2536 templates/InvenTree/settings/settings.html:187
+#: part/models.py:2543 templates/InvenTree/settings/settings.html:190
msgid "Default Value"
msgstr ""
-#: part/models.py:2537
+#: part/models.py:2544
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2614
+#: part/models.py:2621
msgid "Select parent part"
msgstr ""
-#: part/models.py:2622
+#: part/models.py:2629
msgid "Sub part"
msgstr ""
-#: part/models.py:2623
+#: part/models.py:2630
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2629
+#: part/models.py:2636
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2631 templates/js/translated/bom.js:566
-#: templates/js/translated/bom.js:640
+#: part/models.py:2638 templates/js/translated/bom.js:578
+#: templates/js/translated/bom.js:652
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2638
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2634
+#: part/models.py:2641
msgid "Overage"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2642
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2638
+#: part/models.py:2645
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2641
+#: part/models.py:2648
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2643
+#: part/models.py:2650
msgid "Checksum"
msgstr ""
-#: part/models.py:2643
+#: part/models.py:2650
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2647 templates/js/translated/bom.js:657
+#: part/models.py:2654 templates/js/translated/bom.js:669
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2648
+#: part/models.py:2655
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2653 templates/js/translated/bom.js:649
+#: part/models.py:2660 templates/js/translated/bom.js:661
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2654
+#: part/models.py:2661
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2739 stock/models.py:355
+#: part/models.py:2746 stock/models.py:357
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2748 part/models.py:2750
+#: part/models.py:2755 part/models.py:2757
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2879
+#: part/models.py:2886
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2908
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2920
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2928
msgid "Substitute part"
msgstr ""
-#: part/models.py:2932
+#: part/models.py:2939
msgid "Part 1"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2943
msgid "Part 2"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2943
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2968
+#: part/models.py:2975
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4327,7 +4418,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:253
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:270
msgid "BOM actions"
msgstr ""
@@ -4499,7 +4590,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:348
msgid "Duplicate Part"
msgstr ""
@@ -4533,145 +4624,149 @@ msgid "Showing stock for all variants of %(full_name)s"
msgstr ""
#: part/templates/part/detail.html:43
+msgid "Part Stock Allocations"
+msgstr ""
+
+#: part/templates/part/detail.html:60
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:48
+#: part/templates/part/detail.html:65
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:105
+#: part/templates/part/detail.html:122
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:142
+#: part/templates/part/detail.html:159
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:146
+#: part/templates/part/detail.html:163
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:147
+#: part/templates/part/detail.html:164
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:174
+#: part/templates/part/detail.html:191
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:45
+#: part/templates/part/detail.html:228 part/templates/part/part_sidebar.html:49
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:215 part/templates/part/detail.html:216
+#: part/templates/part/detail.html:232 part/templates/part/detail.html:233
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:236 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:253 part/templates/part/part_sidebar.html:17
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:241
+#: part/templates/part/detail.html:258
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:245 templates/js/translated/bom.js:70
+#: part/templates/part/detail.html:262 templates/js/translated/bom.js:70
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:247
+#: part/templates/part/detail.html:264
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:257
+#: part/templates/part/detail.html:274
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:259 templates/js/translated/part.js:272
+#: part/templates/part/detail.html:276 templates/js/translated/part.js:272
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:278
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:266
+#: part/templates/part/detail.html:283
msgid "New BOM Item"
msgstr ""
-#: part/templates/part/detail.html:267
+#: part/templates/part/detail.html:284
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:280
+#: part/templates/part/detail.html:297
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:297
+#: part/templates/part/detail.html:314
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:322
+#: part/templates/part/detail.html:339
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:332
+#: part/templates/part/detail.html:349
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:360
+#: part/templates/part/detail.html:377
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:393
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:558
+#: part/templates/part/detail.html:575
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:559
+#: part/templates/part/detail.html:576
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:608
+#: part/templates/part/detail.html:625
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:652
+#: part/templates/part/detail.html:682
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:660
+#: part/templates/part/detail.html:690
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:755
+#: part/templates/part/detail.html:785
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:812
+#: part/templates/part/detail.html:842
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:925
+#: part/templates/part/detail.html:955
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:937
+#: part/templates/part/detail.html:967
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:949
+#: part/templates/part/detail.html:979
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1038
+#: part/templates/part/detail.html:1068
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4786,7 +4881,7 @@ msgstr ""
#: templates/js/translated/company.js:508
#: templates/js/translated/company.js:765
#: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:527 templates/js/translated/part.js:604
+#: templates/js/translated/part.js:533 templates/js/translated/part.js:610
msgid "Inactive"
msgstr ""
@@ -4805,10 +4900,6 @@ msgstr ""
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1294
-msgid "On Order"
-msgstr ""
-
#: part/templates/part/part_base.html:210 templates/InvenTree/index.html:178
msgid "Required for Build Orders"
msgstr ""
@@ -4821,12 +4912,12 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:678
+#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:690
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1125
-#: templates/js/translated/part.js:1298
+#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1132
+#: templates/js/translated/part.js:1305
msgid "Building"
msgstr ""
@@ -4878,7 +4969,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:632
+#: templates/js/translated/bom.js:644
msgid "No supplier pricing available"
msgstr ""
@@ -4920,7 +5011,12 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/templates/part/part_sidebar.html:41
+#: part/templates/part/part_sidebar.html:31
+#: stock/templates/stock/stock_sidebar.html:8
+msgid "Allocations"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:45
msgid "Test Templates"
msgstr ""
@@ -4993,7 +5089,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:626
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:638
msgid "Supplier Cost"
msgstr ""
@@ -5015,7 +5111,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1690
+#: part/templates/part/prices.html:215 part/views.py:1699
msgid "Add Internal Price Break"
msgstr ""
@@ -5035,9 +5131,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:588
-#: templates/js/translated/part.js:491 templates/js/translated/part.js:1115
-#: templates/js/translated/part.js:1302
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:600
+#: templates/js/translated/part.js:497 templates/js/translated/part.js:1122
+#: templates/js/translated/part.js:1309
msgid "No Stock"
msgstr ""
@@ -5054,116 +5150,116 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:116
+#: part/templatetags/inventree_extras.py:125
msgid "Unknown database"
msgstr ""
-#: part/views.py:92
+#: part/views.py:93
msgid "Set Part Category"
msgstr ""
-#: part/views.py:142
+#: part/views.py:143
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:214
+#: part/views.py:215
msgid "Match References"
msgstr ""
-#: part/views.py:502
+#: part/views.py:511
msgid "None"
msgstr ""
-#: part/views.py:561
+#: part/views.py:570
msgid "Part QR Code"
msgstr ""
-#: part/views.py:663
+#: part/views.py:672
msgid "Select Part Image"
msgstr ""
-#: part/views.py:689
+#: part/views.py:698
msgid "Updated part image"
msgstr ""
-#: part/views.py:692
+#: part/views.py:701
msgid "Part image not found"
msgstr ""
-#: part/views.py:766
+#: part/views.py:775
msgid "Match Parts"
msgstr ""
-#: part/views.py:1101
+#: part/views.py:1110
msgid "Export Bill of Materials"
msgstr ""
-#: part/views.py:1150
+#: part/views.py:1159
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1157
+#: part/views.py:1166
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1166
+#: part/views.py:1175
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1315
+#: part/views.py:1324
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1325
+#: part/views.py:1334
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1332
+#: part/views.py:1341
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1391 templates/js/translated/part.js:315
+#: part/views.py:1400 templates/js/translated/part.js:315
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1429
+#: part/views.py:1438
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1435
+#: part/views.py:1444
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1444
+#: part/views.py:1453
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1545
+#: part/views.py:1554
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1601
+#: part/views.py:1610
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1623
+#: part/views.py:1632
msgid "Added new price break"
msgstr ""
-#: part/views.py:1699
+#: part/views.py:1708
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1707
+#: part/views.py:1716
msgid "Delete Internal Price Break"
msgstr ""
-#: plugin/integration.py:124
+#: plugin/integration.py:138
msgid "No author found"
msgstr ""
-#: plugin/integration.py:136
+#: plugin/integration.py:152
msgid "No date found"
msgstr ""
@@ -5191,7 +5287,7 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:195
+#: plugin/models.py:199
msgid "Plugin"
msgstr ""
@@ -5357,12 +5453,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:517 stock/templates/stock/item_base.html:156
+#: stock/models.py:519 stock/templates/stock/item_base.html:156
#: templates/js/translated/build.js:293 templates/js/translated/build.js:697
#: templates/js/translated/build.js:1073
#: templates/js/translated/model_renderers.js:95
#: templates/js/translated/order.js:99 templates/js/translated/order.js:1945
-#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:415
+#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:423
msgid "Serial Number"
msgstr ""
@@ -5371,19 +5467,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:1948
+#: stock/models.py:1976
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:1954
+#: stock/models.py:1982
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:49
+#: templates/InvenTree/settings/plugin.html:50
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2367
+#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2525
msgid "Date"
msgstr ""
@@ -5396,23 +5492,27 @@ msgid "Fail"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:123
-#: stock/templates/stock/stock_sidebar.html:12
+#: stock/templates/stock/stock_sidebar.html:16
msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:578 templates/js/translated/stock.js:748
-#: templates/js/translated/stock.js:2627
+#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756
+#: templates/js/translated/stock.js:2785
msgid "Serial"
msgstr ""
-#: stock/api.py:478
+#: stock/api.py:476
msgid "Quantity is required"
msgstr ""
-#: stock/forms.py:77 stock/forms.py:251 stock/models.py:574
+#: stock/api.py:483
+msgid "Valid part must be supplied"
+msgstr ""
+
+#: stock/forms.py:77 stock/forms.py:251 stock/models.py:576
#: stock/templates/stock/item_base.html:193
-#: templates/js/translated/stock.js:1701
+#: templates/js/translated/stock.js:1709
msgid "Expiry Date"
msgstr ""
@@ -5460,228 +5560,228 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:60 stock/models.py:611
+#: stock/models.py:62 stock/models.py:613
#: stock/templates/stock/item_base.html:416
msgid "Owner"
msgstr ""
-#: stock/models.py:61 stock/models.py:612
+#: stock/models.py:63 stock/models.py:614
msgid "Select Owner"
msgstr ""
-#: stock/models.py:336
+#: stock/models.py:338
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:372
+#: stock/models.py:374
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:382 stock/models.py:391
+#: stock/models.py:384 stock/models.py:393
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:383
+#: stock/models.py:385
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:405
+#: stock/models.py:407
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:413
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:418
+#: stock/models.py:420
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:461
+#: stock/models.py:463
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:470
+#: stock/models.py:472
msgid "Base part"
msgstr ""
-#: stock/models.py:478
+#: stock/models.py:480
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:484 stock/templates/stock/location.html:16
+#: stock/models.py:486 stock/templates/stock/location.html:16
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr "Kho hàng"
-#: stock/models.py:487
+#: stock/models.py:489
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:494
+#: stock/models.py:496
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:500 stock/templates/stock/item_base.html:298
+#: stock/models.py:502 stock/templates/stock/item_base.html:298
msgid "Installed In"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:505
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:521
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:535
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:537
+#: stock/models.py:539
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:546
+#: stock/models.py:548
msgid "Source Build"
msgstr ""
-#: stock/models.py:548
+#: stock/models.py:550
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:559
+#: stock/models.py:561
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:562
+#: stock/models.py:564
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:568
+#: stock/models.py:570
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:575
+#: stock/models.py:577
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:588
+#: stock/models.py:590
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:588
+#: stock/models.py:590
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:598 stock/templates/stock/item.html:111
+#: stock/models.py:600 stock/templates/stock/item.html:128
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:607
+#: stock/models.py:609
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1068
+#: stock/models.py:1096
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1074
+#: stock/models.py:1102
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1080
+#: stock/models.py:1108
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1083
+#: stock/models.py:1111
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1086
+#: stock/models.py:1114
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1093
+#: stock/models.py:1121
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1164
+#: stock/models.py:1192
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1167
+#: stock/models.py:1195
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1170
+#: stock/models.py:1198
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1173
+#: stock/models.py:1201
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1176
+#: stock/models.py:1204
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1179
+#: stock/models.py:1207
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1186 stock/serializers.py:774
+#: stock/models.py:1214 stock/serializers.py:775
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1190
+#: stock/models.py:1218
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1194
+#: stock/models.py:1222
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1198
+#: stock/models.py:1226
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1369
+#: stock/models.py:1397
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1868
+#: stock/models.py:1896
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1925
+#: stock/models.py:1953
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1931
+#: stock/models.py:1959
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1949
+#: stock/models.py:1977
msgid "Test name"
msgstr ""
-#: stock/models.py:1955 templates/js/translated/table_filters.js:271
+#: stock/models.py:1983 templates/js/translated/table_filters.js:271
msgid "Test result"
msgstr ""
-#: stock/models.py:1961
+#: stock/models.py:1989
msgid "Test output value"
msgstr ""
-#: stock/models.py:1968
+#: stock/models.py:1996
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1974
+#: stock/models.py:2002
msgid "Test notes"
msgstr ""
@@ -5706,7 +5806,7 @@ msgstr ""
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:326 stock/serializers.py:731 stock/serializers.py:972
+#: stock/serializers.py:326 stock/serializers.py:732 stock/serializers.py:973
msgid "Destination stock location"
msgstr ""
@@ -5718,63 +5818,63 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:588
+#: stock/serializers.py:589
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:592
+#: stock/serializers.py:593
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:597
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:626
+#: stock/serializers.py:627
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:632
+#: stock/serializers.py:633
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:640
+#: stock/serializers.py:641
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:650 stock/serializers.py:880
+#: stock/serializers.py:651 stock/serializers.py:881
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:738
+#: stock/serializers.py:739
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:743
+#: stock/serializers.py:744
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:744
+#: stock/serializers.py:745
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:749
+#: stock/serializers.py:750
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:750
+#: stock/serializers.py:751
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:760
+#: stock/serializers.py:761
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:842
+#: stock/serializers.py:843
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:870
+#: stock/serializers.py:871
msgid "Stock transaction notes"
msgstr ""
@@ -5787,47 +5887,51 @@ msgid "New Entry"
msgstr ""
#: stock/templates/stock/item.html:48
-msgid "Child Stock Items"
-msgstr ""
-
-#: stock/templates/stock/item.html:55
-msgid "This stock item does not have any child items"
+msgid "Stock Item Allocations"
msgstr ""
#: stock/templates/stock/item.html:64
-#: stock/templates/stock/stock_sidebar.html:8
-msgid "Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:57
-msgid "Test Report"
+msgid "Child Stock Items"
msgstr ""
#: stock/templates/stock/item.html:72
+msgid "This stock item does not have any child items"
+msgstr ""
+
+#: stock/templates/stock/item.html:81
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:57
+msgid "Test Report"
+msgstr ""
+
+#: stock/templates/stock/item.html:89
msgid "Delete Test Data"
msgstr ""
-#: stock/templates/stock/item.html:76
+#: stock/templates/stock/item.html:93
msgid "Add Test Data"
msgstr ""
-#: stock/templates/stock/item.html:133
+#: stock/templates/stock/item.html:150
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:137 stock/views.py:482
+#: stock/templates/stock/item.html:154 stock/views.py:482
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304
+#: stock/templates/stock/item.html:309 stock/templates/stock/item.html:334
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:324
+#: stock/templates/stock/item.html:354
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:338
+#: stock/templates/stock/item.html:368
msgid "Delete Test Result"
msgstr ""
@@ -5952,7 +6056,7 @@ msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:206
-#: templates/js/translated/stock.js:1714
+#: templates/js/translated/stock.js:1722
msgid "Last Updated"
msgstr ""
@@ -6111,7 +6215,7 @@ msgid "Sublocations"
msgstr ""
#: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164
-#: templates/stats.html:97 users/models.py:42
+#: templates/stats.html:109 users/models.py:42
msgid "Stock Locations"
msgstr ""
@@ -6135,7 +6239,7 @@ msgstr ""
msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/stock_sidebar.html:16
+#: stock/templates/stock/stock_sidebar.html:20
msgid "Child Items"
msgstr ""
@@ -6164,7 +6268,7 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:162
+#: stock/views.py:162 templates/js/translated/stock.js:139
msgid "Edit Stock Location"
msgstr ""
@@ -6204,7 +6308,7 @@ msgstr ""
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:727 templates/js/translated/stock.js:1066
+#: stock/views.py:727 templates/js/translated/stock.js:1074
msgid "Confirm stock adjustment"
msgstr ""
@@ -6212,7 +6316,7 @@ msgstr ""
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:324
+#: stock/views.py:760 templates/js/translated/stock.js:332
msgid "Edit Stock Item"
msgstr ""
@@ -6224,7 +6328,7 @@ msgstr ""
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1153 templates/js/translated/stock.js:304
+#: stock/views.py:1153 templates/js/translated/stock.js:312
msgid "Duplicate Stock Item"
msgstr ""
@@ -6268,6 +6372,18 @@ msgstr ""
msgid "The requested page does not exist"
msgstr ""
+#: templates/500.html:5 templates/500.html:11
+msgid "Internal Server Error"
+msgstr ""
+
+#: templates/500.html:14
+msgid "The InvenTree server raised an internal error"
+msgstr ""
+
+#: templates/500.html:15
+msgid "Refer to the error log in the admin interface for further details"
+msgstr ""
+
#: templates/503.html:10 templates/503.html:35
msgid "Site is in Maintenance"
msgstr ""
@@ -6390,7 +6506,7 @@ msgid "Signup"
msgstr ""
#: templates/InvenTree/settings/mixins/settings.html:5
-#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:118
+#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113
msgid "Settings"
msgstr "Cài đặt"
@@ -6431,43 +6547,43 @@ msgstr ""
msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage."
msgstr ""
-#: templates/InvenTree/settings/plugin.html:32
+#: templates/InvenTree/settings/plugin.html:33
msgid "Plugins"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:37
+#: templates/InvenTree/settings/plugin.html:38
#: templates/js/translated/plugin.js:15
msgid "Install Plugin"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:46 templates/navbar.html:111
+#: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111
#: users/models.py:39
msgid "Admin"
msgstr "Quản trị"
-#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin.html:49
#: templates/InvenTree/settings/plugin_settings.html:28
msgid "Author"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:50
+#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin_settings.html:43
msgid "Version"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:91
+#: templates/InvenTree/settings/plugin.html:92
msgid "Inactive plugins"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:114
+#: templates/InvenTree/settings/plugin.html:115
msgid "Plugin Error Stack"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:123
+#: templates/InvenTree/settings/plugin.html:124
msgid "Stage"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:125
+#: templates/InvenTree/settings/plugin.html:126
msgid "Message"
msgstr ""
@@ -6555,37 +6671,37 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:75
+#: templates/InvenTree/settings/settings.html:78
msgid "Edit Plugin Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:77
+#: templates/InvenTree/settings/settings.html:80
msgid "Edit Global Setting"
msgstr "Chỉnh sửa cài đặt toàn cục"
-#: templates/InvenTree/settings/settings.html:79
+#: templates/InvenTree/settings/settings.html:82
msgid "Edit User Setting"
msgstr "Chỉnh sửa cài đặt người dùng"
-#: templates/InvenTree/settings/settings.html:168
+#: templates/InvenTree/settings/settings.html:171
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:190
-#: templates/InvenTree/settings/settings.html:289
+#: templates/InvenTree/settings/settings.html:193
+#: templates/InvenTree/settings/settings.html:292
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:191
-#: templates/InvenTree/settings/settings.html:290
+#: templates/InvenTree/settings/settings.html:194
+#: templates/InvenTree/settings/settings.html:293
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:269
+#: templates/InvenTree/settings/settings.html:272
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:273
+#: templates/InvenTree/settings/settings.html:276
msgid "ID"
msgstr ""
@@ -6763,124 +6879,105 @@ msgstr ""
msgid "Remove multifactor"
msgstr ""
-#: templates/InvenTree/settings/user.html:219
+#: templates/InvenTree/settings/user.html:220
+msgid "Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:226
+msgid "Log out active sessions (except this one)"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:227
+msgid "Log Out Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:236
+msgid "unknown on unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:237
+msgid "unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:241
+msgid "IP Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:242
+msgid "Device"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:243
+msgid "Last Activity"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:252
+#, python-format
+msgid "%(time)s ago (this session)"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:254
+#, python-format
+msgid "%(time)s ago"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:266
+msgid "Do you really want to remove the selected email address?"
+msgstr ""
+
#: templates/InvenTree/settings/user_display.html:25
msgid "Theme Settings"
msgstr "Thiết lập giao diện"
-#: templates/InvenTree/settings/user.html:227
#: templates/InvenTree/settings/user_display.html:35
msgid "Select theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:237
#: templates/InvenTree/settings/user_display.html:46
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:246
#: templates/InvenTree/settings/user_display.html:54
msgid "Language Settings"
msgstr "Thiết lập ngôn ngữ"
-#: templates/InvenTree/settings/user.html:254
#: templates/InvenTree/settings/user_display.html:63
msgid "Select language"
msgstr ""
-#: templates/InvenTree/settings/user.html:270
#: templates/InvenTree/settings/user_display.html:79
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:272
#: templates/InvenTree/settings/user_display.html:81
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:279
#: templates/InvenTree/settings/user_display.html:88
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:281
#: templates/InvenTree/settings/user_display.html:91
msgid "Some languages are not complete"
msgstr ""
-#: templates/InvenTree/settings/user.html:283
#: templates/InvenTree/settings/user_display.html:93
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user.html:285
+#: templates/InvenTree/settings/user_display.html:95
+msgid "and hidden."
+msgstr ""
+
#: templates/InvenTree/settings/user_display.html:95
msgid "Show them too"
msgstr ""
-#: templates/InvenTree/settings/user.html:292
#: templates/InvenTree/settings/user_display.html:101
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user.html:293
-#, python-format
-msgid "Native language translation of the\n"
-" InvenTree web application is community contributed via crowdin. Contributions are\n"
-" welcomed and encouraged."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:302
-msgid "Active Sessions"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:308
-msgid "Log out active sessions (except this one)"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:309
-msgid "Log Out Active Sessions"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:318
-msgid "unknown on unknown"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:319
-msgid "unknown"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:323
-msgid "IP Address"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:324
-msgid "Device"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:325
-msgid "Last Activity"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:334
-#, python-format
-msgid "%(time)s ago (this session)"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:336
-#, python-format
-msgid "%(time)s ago"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:348
-msgid "Do you really want to remove the selected email address?"
-msgstr ""
-
-#: templates/InvenTree/settings/user_display.html:95
-msgid "and hidden."
-msgstr ""
-
#: templates/InvenTree/settings/user_display.html:102
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
@@ -6899,9 +6996,9 @@ msgid "InvenTree Version Information"
msgstr ""
#: templates/about.html:11 templates/about.html:105
-#: templates/js/translated/bom.js:395 templates/js/translated/modals.js:53
-#: templates/js/translated/modals.js:573 templates/js/translated/modals.js:667
-#: templates/js/translated/modals.js:970 templates/modals.html:15
+#: templates/js/translated/bom.js:407 templates/js/translated/modals.js:53
+#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
+#: templates/js/translated/modals.js:983 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -7178,13 +7275,13 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1103
+#: templates/js/translated/bom.js:1117
msgid "Required Quantity"
msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:579 templates/js/translated/build.js:1189
+#: templates/js/translated/bom.js:591 templates/js/translated/build.js:1189
#: templates/js/translated/build.js:1810
#: templates/js/translated/table_filters.js:178
msgid "Available"
@@ -7208,10 +7305,6 @@ msgstr ""
msgid "Click on the following link to view this part"
msgstr ""
-#: templates/email/low_stock_notification.html:17
-msgid "Total Stock"
-msgstr ""
-
#: templates/email/low_stock_notification.html:19
msgid "Minimum Quantity"
msgstr ""
@@ -7232,11 +7325,11 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1040
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1053
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1041
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1054
msgid "No response from the InvenTree server"
msgstr ""
@@ -7248,27 +7341,27 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1063
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1051
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1064
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1068
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1056
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1069
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1073
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1061
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1074
msgid "The requested resource could not be located on the server"
msgstr ""
@@ -7280,11 +7373,11 @@ msgstr ""
msgid "HTTP method not allowed at URL"
msgstr ""
-#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1065
+#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1078
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1079
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -7353,7 +7446,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:140
-#: templates/js/translated/modals.js:1030
+#: templates/js/translated/modals.js:1043
msgid "Invalid server response"
msgstr ""
@@ -7381,7 +7474,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1018
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026
msgid "Remove stock item"
msgstr ""
@@ -7428,12 +7521,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73
-#: templates/js/translated/order.js:369 templates/js/translated/stock.js:510
+#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74
-#: templates/js/translated/order.js:370 templates/js/translated/stock.js:511
+#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519
msgid "Select file format"
msgstr ""
@@ -7489,87 +7582,87 @@ msgstr ""
msgid "Remove substitute part"
msgstr ""
-#: templates/js/translated/bom.js:340
-msgid "Select and add a new variant item using the input below"
+#: templates/js/translated/bom.js:352
+msgid "Select and add a new substitute part using the input below"
msgstr ""
-#: templates/js/translated/bom.js:351
+#: templates/js/translated/bom.js:363
msgid "Are you sure you wish to remove this substitute part link?"
msgstr ""
-#: templates/js/translated/bom.js:357
+#: templates/js/translated/bom.js:369
msgid "Remove Substitute Part"
msgstr ""
-#: templates/js/translated/bom.js:396
+#: templates/js/translated/bom.js:408
msgid "Add Substitute"
msgstr ""
-#: templates/js/translated/bom.js:397
+#: templates/js/translated/bom.js:409
msgid "Edit BOM Item Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:516
+#: templates/js/translated/bom.js:528
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:520 templates/js/translated/build.js:1171
+#: templates/js/translated/bom.js:532 templates/js/translated/build.js:1171
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:525
+#: templates/js/translated/bom.js:537
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:597
+#: templates/js/translated/bom.js:609
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:612
+#: templates/js/translated/bom.js:624
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:619
+#: templates/js/translated/bom.js:631
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:668 templates/js/translated/bom.js:757
+#: templates/js/translated/bom.js:680 templates/js/translated/bom.js:769
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:728
+#: templates/js/translated/bom.js:740
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:730
+#: templates/js/translated/bom.js:742
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:732
+#: templates/js/translated/bom.js:744
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:734 templates/js/translated/bom.js:908
+#: templates/js/translated/bom.js:746 templates/js/translated/bom.js:920
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:736 templates/js/translated/bom.js:891
+#: templates/js/translated/bom.js:748 templates/js/translated/bom.js:903
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:830 templates/js/translated/build.js:915
+#: templates/js/translated/bom.js:842 templates/js/translated/build.js:915
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:886
+#: templates/js/translated/bom.js:898
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:1086 templates/js/translated/build.js:1155
+#: templates/js/translated/bom.js:1100 templates/js/translated/build.js:1155
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1108
+#: templates/js/translated/bom.js:1122
msgid "Inherited from parent BOM"
msgstr ""
@@ -7725,9 +7818,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1206
-#: templates/js/translated/part.js:1617 templates/js/translated/stock.js:1512
-#: templates/js/translated/stock.js:2321
+#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1213
+#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1520
+#: templates/js/translated/stock.js:2479
msgid "Select"
msgstr ""
@@ -7735,7 +7828,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2540
+#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2698
msgid "No user information"
msgstr ""
@@ -7808,34 +7901,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:511
-#: templates/js/translated/part.js:596
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:517
+#: templates/js/translated/part.js:602
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:515
-#: templates/js/translated/part.js:600
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:521
+#: templates/js/translated/part.js:606
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:690
+#: templates/js/translated/company.js:631 templates/js/translated/part.js:696
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:732
+#: templates/js/translated/company.js:668 templates/js/translated/part.js:738
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:733
+#: templates/js/translated/company.js:669 templates/js/translated/part.js:739
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:750
+#: templates/js/translated/company.js:688 templates/js/translated/part.js:756
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:762
+#: templates/js/translated/company.js:699 templates/js/translated/part.js:768
msgid "Delete Parameter"
msgstr ""
@@ -7844,12 +7937,12 @@ msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:420
+#: templates/js/translated/filters.js:429
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:421
+#: templates/js/translated/filters.js:430
msgid "false"
msgstr ""
@@ -7869,7 +7962,7 @@ msgstr ""
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:329
+#: templates/js/translated/filters.js:338
msgid "Create filter"
msgstr ""
@@ -7898,20 +7991,20 @@ msgstr ""
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1080 templates/modals.html:19
+#: templates/js/translated/forms.js:1082 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1471
+#: templates/js/translated/forms.js:1487
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1675
+#: templates/js/translated/forms.js:1691
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1895
+#: templates/js/translated/forms.js:1930
msgid "Clear input"
msgstr ""
@@ -7924,7 +8017,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1042
+#: templates/js/translated/stock.js:1050
msgid "Select Stock Items"
msgstr ""
@@ -7974,12 +8067,12 @@ msgid "Select Label Template"
msgstr ""
#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
-#: templates/js/translated/modals.js:599
+#: templates/js/translated/modals.js:610
msgid "Cancel"
msgstr ""
#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:666 templates/js/translated/modals.js:969
+#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:982
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
@@ -7988,47 +8081,47 @@ msgstr ""
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:381
+#: templates/js/translated/modals.js:392
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:540
+#: templates/js/translated/modals.js:551
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:598
+#: templates/js/translated/modals.js:609
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:655
+#: templates/js/translated/modals.js:666
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:921
+#: templates/js/translated/modals.js:934
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:921
+#: templates/js/translated/modals.js:934
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:946
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1030
+#: templates/js/translated/modals.js:1043
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1045
+#: templates/js/translated/modals.js:1058
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1046
+#: templates/js/translated/modals.js:1059
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1069
+#: templates/js/translated/modals.js:1082
msgid "Error requesting form data"
msgstr ""
@@ -8052,23 +8145,24 @@ msgstr ""
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:236
+#: templates/js/translated/model_renderers.js:249
+#: templates/js/translated/model_renderers.js:270
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:253
+#: templates/js/translated/model_renderers.js:287
msgid "Shipment ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:273
+#: templates/js/translated/model_renderers.js:307
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:310
+#: templates/js/translated/model_renderers.js:344
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:339
+#: templates/js/translated/model_renderers.js:373
msgid "Supplier Part ID"
msgstr ""
@@ -8116,7 +8210,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2123
+#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2131
msgid "Stock Status"
msgstr ""
@@ -8140,7 +8234,7 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:790 templates/js/translated/part.js:803
+#: templates/js/translated/order.js:790 templates/js/translated/part.js:809
msgid "No purchase orders found"
msgstr ""
@@ -8165,7 +8259,7 @@ msgid "Total"
msgstr ""
#: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163
-#: templates/js/translated/part.js:1834 templates/js/translated/part.js:2045
+#: templates/js/translated/part.js:1841 templates/js/translated/part.js:2052
msgid "Unit Price"
msgstr ""
@@ -8181,7 +8275,7 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1166 templates/js/translated/part.js:935
+#: templates/js/translated/order.js:1166 templates/js/translated/part.js:942
msgid "Receive line item"
msgstr ""
@@ -8250,7 +8344,7 @@ msgid "Delete Stock Allocation"
msgstr ""
#: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048
-#: templates/js/translated/stock.js:1428
+#: templates/js/translated/stock.js:1436
msgid "Shipped to customer"
msgstr ""
@@ -8378,144 +8472,148 @@ msgstr ""
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:412
+#: templates/js/translated/part.js:351
+msgid "Create Part Variant"
+msgstr ""
+
+#: templates/js/translated/part.js:418
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:414
+#: templates/js/translated/part.js:420
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:419
+#: templates/js/translated/part.js:425
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:421
+#: templates/js/translated/part.js:427
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:438
+#: templates/js/translated/part.js:444
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:448
+#: templates/js/translated/part.js:454
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:451
+#: templates/js/translated/part.js:457
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:475
+#: templates/js/translated/part.js:481
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:503 templates/js/translated/part.js:588
+#: templates/js/translated/part.js:509 templates/js/translated/part.js:594
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:507 templates/js/translated/part.js:592
+#: templates/js/translated/part.js:513 templates/js/translated/part.js:598
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:519
+#: templates/js/translated/part.js:525
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:529
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:638
+#: templates/js/translated/part.js:644
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1005
+#: templates/js/translated/part.js:1012
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1029
+#: templates/js/translated/part.js:1036
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1096 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:1363
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1266
+#: templates/js/translated/part.js:1273
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1289
+#: templates/js/translated/part.js:1296
#: templates/js/translated/table_filters.js:430
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1380 templates/js/translated/part.js:1552
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559
+#: templates/js/translated/stock.js:2440
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1396
+#: templates/js/translated/part.js:1403
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1571 templates/js/translated/stock.js:2301
+#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2459
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1635
+#: templates/js/translated/part.js:1642
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1649 templates/js/translated/stock.js:2345
+#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2503
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1693
+#: templates/js/translated/part.js:1700
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1744 templates/js/translated/stock.js:1234
+#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1242
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1745 templates/js/translated/stock.js:1235
+#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1243
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1751
+#: templates/js/translated/part.js:1758
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1773
+#: templates/js/translated/part.js:1780
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1787
+#: templates/js/translated/part.js:1794
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1812
+#: templates/js/translated/part.js:1819
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1867
+#: templates/js/translated/part.js:1874
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1868
+#: templates/js/translated/part.js:1875
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1969
+#: templates/js/translated/part.js:1976
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1988
+#: templates/js/translated/part.js:1995
msgid "Single Price Difference"
msgstr ""
@@ -8589,340 +8687,344 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:73
+#: templates/js/translated/stock.js:74
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:173
+#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:181
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/stock.js:93 templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:94 templates/js/translated/stock.js:183
msgid "Latest serial number"
msgstr "Số seri mới nhất"
-#: templates/js/translated/stock.js:101
+#: templates/js/translated/stock.js:102
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:110
+#: templates/js/translated/stock.js:111
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:146
+#: templates/js/translated/stock.js:154
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:186
+#: templates/js/translated/stock.js:194
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:225
+#: templates/js/translated/stock.js:233
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:231
+#: templates/js/translated/stock.js:239
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:374
+#: templates/js/translated/stock.js:382
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:387
+#: templates/js/translated/stock.js:395
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:412
+#: templates/js/translated/stock.js:420
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:416 templates/js/translated/stock.js:417
+#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:433
+#: templates/js/translated/stock.js:441
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:453
+#: templates/js/translated/stock.js:461
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:462
+#: templates/js/translated/stock.js:470
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:507
+#: templates/js/translated/stock.js:515
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:518
+#: templates/js/translated/stock.js:526
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:527
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:628
+#: templates/js/translated/stock.js:636
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:629
+#: templates/js/translated/stock.js:637
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:706
+#: templates/js/translated/stock.js:714
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:707
+#: templates/js/translated/stock.js:715
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:709
+#: templates/js/translated/stock.js:717
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:710
+#: templates/js/translated/stock.js:718
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:796
+#: templates/js/translated/stock.js:804
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:797
+#: templates/js/translated/stock.js:805
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:892
+#: templates/js/translated/stock.js:900
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:893
+#: templates/js/translated/stock.js:901
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:899
+#: templates/js/translated/stock.js:907
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:900
+#: templates/js/translated/stock.js:908
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:904
+#: templates/js/translated/stock.js:912
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:905
+#: templates/js/translated/stock.js:913
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:909
+#: templates/js/translated/stock.js:917
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:910 users/models.py:206
+#: templates/js/translated/stock.js:918 users/models.py:208
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:914 templates/stock_table.html:58
+#: templates/js/translated/stock.js:922 templates/stock_table.html:58
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1003
+#: templates/js/translated/stock.js:1011
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1003
+#: templates/js/translated/stock.js:1011
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1043
+#: templates/js/translated/stock.js:1051
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1201
+#: templates/js/translated/stock.js:1209
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1211
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1208
+#: templates/js/translated/stock.js:1216
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1230
+#: templates/js/translated/stock.js:1238
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1256
+#: templates/js/translated/stock.js:1264
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1313
+#: templates/js/translated/stock.js:1321
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1420
+#: templates/js/translated/stock.js:1428
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1424
+#: templates/js/translated/stock.js:1432
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1432
+#: templates/js/translated/stock.js:1440
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1438
+#: templates/js/translated/stock.js:1446
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1596
+#: templates/js/translated/stock.js:1604
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1601
+#: templates/js/translated/stock.js:1609
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1612
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/stock.js:1616
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1610
+#: templates/js/translated/stock.js:1618
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1616
+#: templates/js/translated/stock.js:1624
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1626
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1620
+#: templates/js/translated/stock.js:1628
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1625
+#: templates/js/translated/stock.js:1633
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1632
+#: templates/js/translated/stock.js:1640
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1634
+#: templates/js/translated/stock.js:1642
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1644
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1640
+#: templates/js/translated/stock.js:1648
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1698
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1763
+#: templates/js/translated/stock.js:1771
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1801
+#: templates/js/translated/stock.js:1809
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1822 templates/js/translated/stock.js:1870
+#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:1878
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1910
+#: templates/js/translated/stock.js:1918
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1937
+#: templates/js/translated/stock.js:1945
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1939
+#: templates/js/translated/stock.js:1947
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:2138
+#: templates/js/translated/stock.js:2146
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2152
+#: templates/js/translated/stock.js:2160
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2153
+#: templates/js/translated/stock.js:2161
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2377
+#: templates/js/translated/stock.js:2340
+msgid "Allocated Quantity"
+msgstr ""
+
+#: templates/js/translated/stock.js:2535
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:2399
+#: templates/js/translated/stock.js:2557
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2424
+#: templates/js/translated/stock.js:2582
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2443
+#: templates/js/translated/stock.js:2601
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2462
+#: templates/js/translated/stock.js:2620
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2480
+#: templates/js/translated/stock.js:2638
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2503
+#: templates/js/translated/stock.js:2661
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2511
+#: templates/js/translated/stock.js:2669
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2552
+#: templates/js/translated/stock.js:2710
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2553
+#: templates/js/translated/stock.js:2711
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2604
+#: templates/js/translated/stock.js:2762
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2655
+#: templates/js/translated/stock.js:2813
msgid "Uninstall Stock Item"
msgstr ""
@@ -9194,11 +9296,11 @@ msgstr "Mua"
msgid "Sell"
msgstr "Bán"
-#: templates/navbar.html:113
+#: templates/navbar.html:114
msgid "Logout"
msgstr "Đăng xuất"
-#: templates/navbar.html:115
+#: templates/navbar.html:116
msgid "Login"
msgstr ""
@@ -9246,31 +9348,43 @@ msgstr ""
msgid "Server is deployed using docker"
msgstr ""
-#: templates/stats.html:40
-msgid "Server status"
+#: templates/stats.html:39
+msgid "Plugin Support"
msgstr ""
#: templates/stats.html:43
-msgid "Healthy"
+msgid "Plugin support enabled"
msgstr ""
#: templates/stats.html:45
-msgid "Issues detected"
+msgid "Plugin support disabled"
msgstr ""
#: templates/stats.html:52
-msgid "Background Worker"
+msgid "Server status"
msgstr ""
#: templates/stats.html:55
+msgid "Healthy"
+msgstr ""
+
+#: templates/stats.html:57
+msgid "Issues detected"
+msgstr ""
+
+#: templates/stats.html:64
+msgid "Background Worker"
+msgstr ""
+
+#: templates/stats.html:67
msgid "Background worker not running"
msgstr ""
-#: templates/stats.html:63
+#: templates/stats.html:75
msgid "Email Settings"
msgstr ""
-#: templates/stats.html:66
+#: templates/stats.html:78
msgid "Email settings not configured"
msgstr ""
@@ -9366,35 +9480,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:193
+#: users/models.py:195
msgid "Permission set"
msgstr ""
-#: users/models.py:201
+#: users/models.py:203
msgid "Group"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
msgid "View"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
msgid "Permission to view items"
msgstr ""
-#: users/models.py:206
+#: users/models.py:208
msgid "Permission to add items"
msgstr ""
-#: users/models.py:208
+#: users/models.py:210
msgid "Change"
msgstr ""
-#: users/models.py:208
+#: users/models.py:210
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:210
+#: users/models.py:212
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.po b/InvenTree/locale/zh/LC_MESSAGES/django.po
index 13e69c27a0..5335bbbfeb 100644
--- a/InvenTree/locale/zh/LC_MESSAGES/django.po
+++ b/InvenTree/locale/zh/LC_MESSAGES/django.po
@@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-01-10 03:54+0000\n"
-"PO-Revision-Date: 2022-01-10 03:57\n"
+"POT-Creation-Date: 2022-01-29 00:17+0000\n"
+"PO-Revision-Date: 2022-01-29 01:11\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"Language: zh_CN\n"
@@ -18,15 +18,15 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 138\n"
-#: InvenTree/api.py:64
+#: InvenTree/api.py:55
msgid "API endpoint not found"
msgstr "未找到 API 端点"
-#: InvenTree/api.py:110
+#: InvenTree/api.py:101
msgid "No action specified"
msgstr "未指定操作"
-#: InvenTree/api.py:124
+#: InvenTree/api.py:116
msgid "No matching action found"
msgstr "未找到指定操作"
@@ -80,41 +80,41 @@ msgstr "Email 地址确认"
msgid "You must type the same email each time."
msgstr "您必须输入相同的 Email 。"
-#: InvenTree/helpers.py:437
+#: InvenTree/helpers.py:439
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr "重复的序列号: {n}"
-#: InvenTree/helpers.py:444 order/models.py:279 order/models.py:420
+#: InvenTree/helpers.py:446 order/models.py:282 order/models.py:425
#: stock/views.py:1231
msgid "Invalid quantity provided"
msgstr "提供的数量无效"
-#: InvenTree/helpers.py:447
+#: InvenTree/helpers.py:449
msgid "Empty serial number string"
msgstr "空序列号字符串"
-#: InvenTree/helpers.py:469 InvenTree/helpers.py:472 InvenTree/helpers.py:475
-#: InvenTree/helpers.py:500
+#: InvenTree/helpers.py:471 InvenTree/helpers.py:474 InvenTree/helpers.py:477
+#: InvenTree/helpers.py:502
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "无效的群组: {g}"
-#: InvenTree/helpers.py:510
+#: InvenTree/helpers.py:512
#, python-brace-format
msgid "Invalid group {group}"
msgstr ""
-#: InvenTree/helpers.py:516
+#: InvenTree/helpers.py:518
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:522
+#: InvenTree/helpers.py:524
msgid "No serial numbers found"
msgstr "未找到序列号"
-#: InvenTree/helpers.py:526
+#: InvenTree/helpers.py:528
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "唯一序列号 ({s}) 必须匹配数量 ({q})"
@@ -127,7 +127,7 @@ msgstr "缺少文件"
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:132 stock/models.py:1967
+#: InvenTree/models.py:132 stock/models.py:1995
#: templates/js/translated/attachment.js:119
msgid "Attachment"
msgstr "附件"
@@ -137,15 +137,15 @@ msgid "Select file to attach"
msgstr "选择附件"
#: InvenTree/models.py:139 company/models.py:131 company/models.py:348
-#: company/models.py:564 order/models.py:124 part/models.py:828
+#: company/models.py:564 order/models.py:127 part/models.py:830
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1317
+#: templates/js/translated/company.js:829 templates/js/translated/part.js:1324
msgid "Link"
msgstr "链接"
-#: InvenTree/models.py:140 build/models.py:330 part/models.py:829
-#: stock/models.py:527
+#: InvenTree/models.py:140 build/models.py:332 part/models.py:831
+#: stock/models.py:529
msgid "Link to external URL"
msgstr "链接到外部 URL"
@@ -157,10 +157,11 @@ msgstr "注释"
msgid "File comment"
msgstr "文件注释"
-#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213
-#: common/models.py:1214 part/models.py:2258 part/models.py:2278
+#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1223
+#: common/models.py:1224 common/models.py:1452 common/models.py:1453
+#: part/models.py:2265 part/models.py:2285
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2534
+#: templates/js/translated/stock.js:2692
msgid "User"
msgstr "用户"
@@ -197,42 +198,42 @@ msgstr "重命名文件出错"
msgid "Invalid choice"
msgstr "选择无效"
-#: InvenTree/models.py:277 InvenTree/models.py:278 company/models.py:415
-#: label/models.py:112 part/models.py:772 part/models.py:2442
-#: plugin/models.py:40 report/models.py:181
+#: InvenTree/models.py:277 InvenTree/models.py:278 common/models.py:1438
+#: company/models.py:415 label/models.py:112 part/models.py:774
+#: part/models.py:2449 plugin/models.py:40 report/models.py:181
#: templates/InvenTree/settings/mixins/urls.html:13
-#: templates/InvenTree/settings/plugin.html:47
-#: templates/InvenTree/settings/plugin.html:124
+#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin.html:125
#: templates/InvenTree/settings/plugin_settings.html:23
-#: templates/InvenTree/settings/settings.html:279
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:561
-#: templates/js/translated/part.js:700 templates/js/translated/part.js:1624
-#: templates/js/translated/stock.js:2327
+#: templates/InvenTree/settings/settings.html:282
+#: templates/js/translated/company.js:641 templates/js/translated/part.js:567
+#: templates/js/translated/part.js:706 templates/js/translated/part.js:1631
+#: templates/js/translated/stock.js:2485
msgid "Name"
msgstr "名称"
-#: InvenTree/models.py:284 build/models.py:207
+#: InvenTree/models.py:284 build/models.py:209
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:73 label/models.py:119
-#: order/models.py:122 part/models.py:795 part/templates/part/category.html:74
+#: order/models.py:125 part/models.py:797 part/templates/part/category.html:74
#: part/templates/part/part_base.html:163
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:93
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:327 templates/js/translated/bom.js:540
+#: templates/js/translated/bom.js:339 templates/js/translated/bom.js:552
#: templates/js/translated/build.js:1682 templates/js/translated/company.js:345
#: templates/js/translated/company.js:551
#: templates/js/translated/company.js:840 templates/js/translated/order.js:836
#: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258
-#: templates/js/translated/part.js:620 templates/js/translated/part.js:992
-#: templates/js/translated/part.js:1077 templates/js/translated/part.js:1247
-#: templates/js/translated/part.js:1643 templates/js/translated/part.js:1712
-#: templates/js/translated/stock.js:1569 templates/js/translated/stock.js:2339
-#: templates/js/translated/stock.js:2384
+#: templates/js/translated/part.js:626 templates/js/translated/part.js:999
+#: templates/js/translated/part.js:1084 templates/js/translated/part.js:1254
+#: templates/js/translated/part.js:1650 templates/js/translated/part.js:1719
+#: templates/js/translated/stock.js:1577 templates/js/translated/stock.js:2314
+#: templates/js/translated/stock.js:2497 templates/js/translated/stock.js:2542
msgid "Description"
msgstr "描述信息"
@@ -244,7 +245,7 @@ msgstr "描述 (可选)"
msgid "parent"
msgstr "上级项"
-#: InvenTree/serializers.py:65 part/models.py:2727
+#: InvenTree/serializers.py:65 part/models.py:2734
msgid "Must be a valid number"
msgstr "必须是有效数字"
@@ -252,83 +253,83 @@ msgstr "必须是有效数字"
msgid "Filename"
msgstr "文件名"
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:661
msgid "German"
msgstr "德语"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:662
msgid "Greek"
msgstr "希腊语"
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:663
msgid "English"
msgstr "英语"
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:664
msgid "Spanish"
msgstr "西班牙语"
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:665
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:666
msgid "French"
msgstr "法语"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:667
msgid "Hebrew"
msgstr "希伯来语"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:668
msgid "Italian"
msgstr "意大利语"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:669
msgid "Japanese"
msgstr "日语"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:670
msgid "Korean"
msgstr "韩语"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:671
msgid "Dutch"
msgstr "荷兰语"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:672
msgid "Norwegian"
msgstr "挪威语"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:673
msgid "Polish"
msgstr "波兰语"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:674
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:675
msgid "Russian"
msgstr "俄语"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:676
msgid "Swedish"
msgstr "瑞典语"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:677
msgid "Thai"
msgstr "泰语"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:678
msgid "Turkish"
msgstr "土耳其语"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:679
msgid "Vietnamese"
msgstr "越南语"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:680
msgid "Chinese"
msgstr "中文(简体)"
@@ -374,7 +375,7 @@ msgstr "丢失"
msgid "Returned"
msgstr "已退回"
-#: InvenTree/status_codes.py:143 order/models.py:941
+#: InvenTree/status_codes.py:143 order/models.py:961
#: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255
msgid "Shipped"
msgstr "已发货"
@@ -455,7 +456,7 @@ msgstr "从父项拆分"
msgid "Split child item"
msgstr "拆分子项"
-#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2064
+#: InvenTree/status_codes.py:294 templates/js/translated/stock.js:2072
msgid "Merged stock items"
msgstr ""
@@ -543,56 +544,56 @@ msgstr "密码字段必须相匹配。"
msgid "System Information"
msgstr "系统信息"
-#: barcodes/api.py:54 barcodes/api.py:151
+#: barcodes/api.py:54 barcodes/api.py:152
msgid "Must provide barcode_data parameter"
msgstr "必须提供条码数据参数"
-#: barcodes/api.py:127
+#: barcodes/api.py:128
msgid "No match found for barcode data"
msgstr "未找到匹配条形码数据"
-#: barcodes/api.py:129
+#: barcodes/api.py:130
msgid "Match found for barcode data"
msgstr "找到匹配条形码数据"
-#: barcodes/api.py:154
+#: barcodes/api.py:155
msgid "Must provide stockitem parameter"
msgstr "必须提供库存项参数"
-#: barcodes/api.py:161
+#: barcodes/api.py:162
msgid "No matching stock item found"
msgstr "未找到匹配的库存项"
-#: barcodes/api.py:191
+#: barcodes/api.py:193
msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:195
+#: barcodes/api.py:197
msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:199
+#: barcodes/api.py:201
msgid "Barcode already matches Part"
msgstr ""
-#: barcodes/api.py:205 barcodes/api.py:217
+#: barcodes/api.py:207 barcodes/api.py:219
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:223
+#: barcodes/api.py:225
msgid "Barcode associated with Stock Item"
msgstr ""
-#: build/forms.py:36 build/models.py:1286
+#: build/forms.py:36 build/models.py:1293
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:35 common/models.py:1253
+#: build/templates/build/detail.html:35 common/models.py:1263
#: company/forms.py:42 company/templates/company/supplier_part.html:251
-#: order/models.py:796 order/models.py:1207 order/serializers.py:810
+#: order/models.py:805 order/models.py:1229 order/serializers.py:816
#: order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:145
-#: part/forms.py:161 part/forms.py:177 part/models.py:2629
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144
+#: part/forms.py:160 part/forms.py:176 part/models.py:2636
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:962 part/templates/part/detail.html:1048
+#: part/templates/part/detail.html:992 part/templates/part/detail.html:1078
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -603,7 +604,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:181
#: stock/templates/stock/item_base.html:262
#: stock/templates/stock/item_base.html:270
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:555
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:567
#: templates/js/translated/build.js:295 templates/js/translated/build.js:495
#: templates/js/translated/build.js:689 templates/js/translated/build.js:699
#: templates/js/translated/build.js:1075 templates/js/translated/build.js:1422
@@ -611,11 +612,11 @@ msgstr ""
#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056
#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859
#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036
-#: templates/js/translated/order.js:2150 templates/js/translated/part.js:900
-#: templates/js/translated/part.js:1855 templates/js/translated/part.js:1978
-#: templates/js/translated/part.js:2056 templates/js/translated/stock.js:383
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:750
-#: templates/js/translated/stock.js:2519 templates/js/translated/stock.js:2621
+#: templates/js/translated/order.js:2150 templates/js/translated/part.js:906
+#: templates/js/translated/part.js:1862 templates/js/translated/part.js:1985
+#: templates/js/translated/part.js:2063 templates/js/translated/stock.js:391
+#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758
+#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2779
msgid "Quantity"
msgstr "数量"
@@ -623,9 +624,9 @@ msgstr "数量"
msgid "Enter quantity for build output"
msgstr "输入生产产出数量"
-#: build/forms.py:41 order/serializers.py:814 stock/forms.py:81
-#: stock/serializers.py:314 templates/js/translated/stock.js:230
-#: templates/js/translated/stock.js:384
+#: build/forms.py:41 order/serializers.py:820 stock/forms.py:81
+#: stock/serializers.py:314 templates/js/translated/stock.js:238
+#: templates/js/translated/stock.js:392
msgid "Serial Numbers"
msgstr "序列号"
@@ -649,18 +650,18 @@ msgstr "确认取消"
msgid "Confirm build cancellation"
msgstr "确认生产取消"
-#: build/models.py:133
+#: build/models.py:135
msgid "Invalid choice for parent build"
msgstr "上级生产选项无效"
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:139 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:457
+#: templates/js/translated/build.js:457 templates/js/translated/stock.js:2290
msgid "Build Order"
msgstr "生产订单"
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:140 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:92
#: order/templates/order/so_sidebar.html:13
@@ -670,40 +671,40 @@ msgstr "生产订单"
msgid "Build Orders"
msgstr "生产订单"
-#: build/models.py:198
+#: build/models.py:200
msgid "Build Order Reference"
msgstr "相关生产订单"
-#: build/models.py:199 order/models.py:210 order/models.py:536
-#: order/models.py:803 part/models.py:2638
+#: build/models.py:201 order/models.py:213 order/models.py:541
+#: order/models.py:812 part/models.py:2645
#: 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/translated/bom.js:547 templates/js/translated/build.js:1179
+#: templates/js/translated/bom.js:559 templates/js/translated/build.js:1179
#: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144
msgid "Reference"
msgstr "引用"
-#: build/models.py:210
+#: build/models.py:212
msgid "Brief description of the build"
msgstr "生产的简短描述."
-#: build/models.py:219 build/templates/build/build_base.html:164
+#: build/models.py:221 build/templates/build/build_base.html:164
#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr "上级生产"
-#: build/models.py:220
+#: build/models.py:222
msgid "BuildOrder to which this build is allocated"
msgstr "此次生产匹配的订单"
-#: build/models.py:225 build/templates/build/build_base.html:77
+#: build/models.py:227 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
-#: order/models.py:856 order/models.py:930
-#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
-#: part/models.py:2204 part/models.py:2220 part/models.py:2239
-#: part/models.py:2256 part/models.py:2358 part/models.py:2480
-#: part/models.py:2613 part/models.py:2920 part/serializers.py:658
+#: order/models.py:876 order/models.py:950
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359
+#: part/models.py:2211 part/models.py:2227 part/models.py:2246
+#: part/models.py:2263 part/models.py:2365 part/models.py:2487
+#: part/models.py:2620 part/models.py:2927 part/serializers.py:658
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -713,205 +714,205 @@ msgstr "此次生产匹配的订单"
#: templates/InvenTree/search.html:80
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
-#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:326
-#: templates/js/translated/bom.js:505 templates/js/translated/build.js:680
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:338
+#: templates/js/translated/bom.js:517 templates/js/translated/build.js:680
#: templates/js/translated/build.js:1048 templates/js/translated/build.js:1419
#: templates/js/translated/build.js:1687 templates/js/translated/company.js:492
#: templates/js/translated/company.js:749 templates/js/translated/order.js:84
#: templates/js/translated/order.js:586 templates/js/translated/order.js:1004
#: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933
-#: templates/js/translated/order.js:2128 templates/js/translated/part.js:977
-#: templates/js/translated/part.js:1058 templates/js/translated/part.js:1225
-#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:719
-#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1526
-#: templates/js/translated/stock.js:2609
+#: templates/js/translated/order.js:2128 templates/js/translated/part.js:984
+#: templates/js/translated/part.js:1065 templates/js/translated/part.js:1232
+#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727
+#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1534
+#: templates/js/translated/stock.js:2767
msgid "Part"
msgstr "商品"
-#: build/models.py:233
+#: build/models.py:235
msgid "Select part to build"
msgstr "选择要生产的商品"
-#: build/models.py:238
+#: build/models.py:240
msgid "Sales Order Reference"
msgstr "相关销售订单"
-#: build/models.py:242
+#: build/models.py:244
msgid "SalesOrder to which this build is allocated"
msgstr "此次生产匹配的销售订单"
-#: build/models.py:247 templates/js/translated/build.js:1407
+#: build/models.py:249 templates/js/translated/build.js:1407
#: templates/js/translated/order.js:1564
msgid "Source Location"
msgstr "来源地点"
-#: build/models.py:251
+#: build/models.py:253
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:256
+#: build/models.py:258
msgid "Destination Location"
msgstr "目标地点"
-#: build/models.py:260
+#: build/models.py:262
msgid "Select location where the completed items will be stored"
msgstr "选择已完成项目仓储地点"
-#: build/models.py:264
+#: build/models.py:266
msgid "Build Quantity"
msgstr "生产数量"
-#: build/models.py:267
+#: build/models.py:269
msgid "Number of stock items to build"
msgstr "要生产的项目数量"
-#: build/models.py:271
+#: build/models.py:273
msgid "Completed items"
msgstr "已完成项目"
-#: build/models.py:273
+#: build/models.py:275
msgid "Number of stock items which have been completed"
msgstr "已完成的库存项目数量"
-#: build/models.py:277 part/templates/part/part_base.html:234
+#: build/models.py:279 part/templates/part/part_base.html:234
msgid "Build Status"
msgstr "生产状态"
-#: build/models.py:281
+#: build/models.py:283
msgid "Build status code"
msgstr "生产状态代码"
-#: build/models.py:285 stock/models.py:531
+#: build/models.py:287 stock/models.py:533
msgid "Batch Code"
msgstr "批量代码"
-#: build/models.py:289
+#: build/models.py:291
msgid "Batch code for this build output"
msgstr "此生产产出的批量代码"
-#: build/models.py:292 order/models.py:126 part/models.py:967
+#: build/models.py:294 order/models.py:129 part/models.py:969
#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271
msgid "Creation Date"
msgstr "创建日期"
-#: build/models.py:296 order/models.py:558
+#: build/models.py:298 order/models.py:563
msgid "Target completion date"
msgstr "预计完成日期"
-#: build/models.py:297
+#: build/models.py:299
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "生产完成的目标日期。生产将在此日期之后逾期。"
-#: build/models.py:300 order/models.py:252
+#: build/models.py:302 order/models.py:255
#: templates/js/translated/build.js:1758
msgid "Completion Date"
msgstr "完成日期:"
-#: build/models.py:306
+#: build/models.py:308
msgid "completed by"
msgstr "完成人"
-#: build/models.py:314 templates/js/translated/build.js:1729
+#: build/models.py:316 templates/js/translated/build.js:1729
msgid "Issued by"
msgstr "发布者"
-#: build/models.py:315
+#: build/models.py:317
msgid "User who issued this build order"
msgstr "发布此生产订单的用户"
-#: build/models.py:323 build/templates/build/build_base.html:185
-#: build/templates/build/detail.html:116 order/models.py:140
+#: build/models.py:325 build/templates/build/build_base.html:185
+#: build/templates/build/detail.html:116 order/models.py:143
#: order/templates/order/order_base.html:170
-#: order/templates/order/sales_order_base.html:182 part/models.py:971
+#: order/templates/order/sales_order_base.html:182 part/models.py:973
#: report/templates/report/inventree_build_order_base.html:159
#: templates/js/translated/build.js:1741 templates/js/translated/order.js:864
msgid "Responsible"
msgstr "责任人"
-#: build/models.py:324
+#: build/models.py:326
msgid "User responsible for this build order"
msgstr "负责此生产订单的用户"
-#: build/models.py:329 build/templates/build/detail.html:102
+#: build/models.py:331 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:525
+#: part/templates/part/part_base.html:354 stock/models.py:527
#: stock/templates/stock/item_base.html:373
msgid "External Link"
msgstr "外部链接"
-#: build/models.py:334 build/serializers.py:201
+#: build/models.py:336 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
-#: order/models.py:144 order/models.py:805 order/models.py:1051
+#: order/models.py:147 order/models.py:814 order/models.py:1071
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:17 part/models.py:956
-#: part/templates/part/detail.html:120 part/templates/part/part_sidebar.html:50
+#: order/templates/order/so_sidebar.html:17 part/models.py:958
+#: part/templates/part/detail.html:137 part/templates/part/part_sidebar.html:54
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:597
-#: stock/models.py:1867 stock/models.py:1973 stock/serializers.py:332
-#: stock/serializers.py:639 stock/serializers.py:737 stock/serializers.py:869
-#: stock/templates/stock/stock_sidebar.html:21
-#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:711
+#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:599
+#: stock/models.py:1895 stock/models.py:2001 stock/serializers.py:332
+#: stock/serializers.py:640 stock/serializers.py:738 stock/serializers.py:870
+#: stock/templates/stock/stock_sidebar.html:25
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:723
#: templates/js/translated/company.js:845 templates/js/translated/order.js:1149
#: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280
-#: templates/js/translated/stock.js:1309 templates/js/translated/stock.js:1795
+#: templates/js/translated/stock.js:1317 templates/js/translated/stock.js:1803
msgid "Notes"
msgstr "备注"
-#: build/models.py:335
+#: build/models.py:337
msgid "Extra build notes"
msgstr "额外的生产备注"
-#: build/models.py:710
+#: build/models.py:717
msgid "No build output specified"
msgstr "未指定生产产出"
-#: build/models.py:713
+#: build/models.py:720
msgid "Build output is already completed"
msgstr "生产产出已完成"
-#: build/models.py:716
+#: build/models.py:723
msgid "Build output does not match Build Order"
msgstr "生产产出与订单不匹配"
-#: build/models.py:1108
+#: build/models.py:1115
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1117
+#: build/models.py:1124
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1127
+#: build/models.py:1134
msgid "Stock item is over-allocated"
msgstr "库存物品分配过度!"
-#: build/models.py:1133 order/models.py:1167
+#: build/models.py:1140 order/models.py:1189
msgid "Allocation quantity must be greater than zero"
msgstr "分配数量必须大于0"
-#: build/models.py:1139
+#: build/models.py:1146
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1196
+#: build/models.py:1203
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1256 stock/templates/stock/item_base.html:345
+#: build/models.py:1263 stock/templates/stock/item_base.html:345
#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1660
#: templates/navbar.html:35
msgid "Build"
msgstr "生产"
-#: build/models.py:1257
+#: build/models.py:1264
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1273 build/serializers.py:388 order/serializers.py:690
-#: order/serializers.py:708 stock/serializers.py:577 stock/serializers.py:695
+#: build/models.py:1280 build/serializers.py:388 order/serializers.py:696
+#: order/serializers.py:714 stock/serializers.py:578 stock/serializers.py:696
#: stock/templates/stock/item_base.html:9
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:367
@@ -920,24 +921,24 @@ msgstr ""
#: templates/js/translated/order.js:85 templates/js/translated/order.js:1577
#: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837
#: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030
-#: templates/js/translated/stock.js:555 templates/js/translated/stock.js:720
-#: templates/js/translated/stock.js:2470
+#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728
+#: templates/js/translated/stock.js:2628
msgid "Stock Item"
msgstr "库存项"
-#: build/models.py:1274
+#: build/models.py:1281
msgid "Source stock item"
msgstr "源库存项"
-#: build/models.py:1287
+#: build/models.py:1294
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1295
+#: build/models.py:1302
msgid "Install into"
msgstr "安装到"
-#: build/models.py:1296
+#: build/models.py:1303
msgid "Destination stock item"
msgstr ""
@@ -962,16 +963,16 @@ msgid "This build output is not fully allocated"
msgstr ""
#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294
-#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:730
-#: stock/serializers.py:971 stock/templates/stock/item_base.html:313
+#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:731
+#: stock/serializers.py:972 stock/templates/stock/item_base.html:313
#: templates/js/translated/barcode.js:384
#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:480
#: templates/js/translated/build.js:1087 templates/js/translated/order.js:508
#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955
#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044
-#: templates/js/translated/part.js:179 templates/js/translated/stock.js:556
-#: templates/js/translated/stock.js:721 templates/js/translated/stock.js:928
-#: templates/js/translated/stock.js:1676 templates/js/translated/stock.js:2411
+#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564
+#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936
+#: templates/js/translated/stock.js:1684 templates/js/translated/stock.js:2569
msgid "Location"
msgstr "地点"
@@ -980,12 +981,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:137
-#: build/templates/build/detail.html:63 order/models.py:552
+#: build/templates/build/detail.html:63 order/models.py:557
#: order/serializers.py:247 stock/templates/stock/item_base.html:187
#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1716
#: templates/js/translated/order.js:591 templates/js/translated/order.js:840
-#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1651
-#: templates/js/translated/stock.js:2488 templates/js/translated/stock.js:2637
+#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:2646 templates/js/translated/stock.js:2795
msgid "Status"
msgstr "状态"
@@ -1021,8 +1022,8 @@ msgstr "所需生产数量尚未完成"
msgid "Build order has incomplete outputs"
msgstr ""
-#: build/serializers.py:313 build/serializers.py:362 part/models.py:2753
-#: part/models.py:2912
+#: build/serializers.py:313 build/serializers.py:362 part/models.py:2760
+#: part/models.py:2919
msgid "BOM Item"
msgstr ""
@@ -1038,16 +1039,16 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:394 stock/serializers.py:584
+#: build/serializers.py:394 stock/serializers.py:585
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:408 order/models.py:277 order/serializers.py:240
-#: stock/models.py:365 stock/models.py:1077 stock/serializers.py:305
+#: build/serializers.py:408 order/models.py:280 order/serializers.py:240
+#: stock/models.py:367 stock/models.py:1105 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:450 order/serializers.py:741
+#: build/serializers.py:450 order/serializers.py:747
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1060,7 +1061,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:491 order/serializers.py:984
+#: build/serializers.py:491 order/serializers.py:990
msgid "Allocation items must be provided"
msgstr ""
@@ -1164,13 +1165,13 @@ msgid "Completed"
msgstr "已完成"
#: build/templates/build/build_base.html:171
-#: build/templates/build/detail.html:95 order/models.py:927
-#: order/models.py:1023 order/templates/order/sales_order_base.html:9
+#: build/templates/build/detail.html:95 order/models.py:947
+#: order/models.py:1043 order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:307
-#: templates/js/translated/order.js:1218
+#: templates/js/translated/order.js:1218 templates/js/translated/stock.js:2304
msgid "Sales Order"
msgstr "销售订单"
@@ -1224,7 +1225,7 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:50 order/models.py:878 stock/forms.py:136
+#: build/templates/build/detail.html:50 order/models.py:898 stock/forms.py:136
#: templates/js/translated/order.js:592 templates/js/translated/order.js:1138
msgid "Destination"
msgstr ""
@@ -1239,7 +1240,7 @@ msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:331
-#: templates/js/translated/stock.js:1665 templates/js/translated/stock.js:2644
+#: templates/js/translated/stock.js:1673 templates/js/translated/stock.js:2802
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:238
msgid "Batch"
@@ -1343,9 +1344,9 @@ msgstr ""
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:107
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:196
-#: part/templates/part/part_sidebar.html:48 stock/templates/stock/item.html:95
-#: stock/templates/stock/stock_sidebar.html:19
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:213
+#: part/templates/part/part_sidebar.html:52 stock/templates/stock/item.html:112
+#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr "附件"
@@ -1360,8 +1361,8 @@ msgstr "生产备注"
#: order/templates/order/purchase_order_detail.html:108
#: order/templates/order/sales_order_detail.html:127
#: order/templates/order/sales_order_detail.html:186
-#: part/templates/part/detail.html:124 stock/templates/stock/item.html:115
-#: stock/templates/stock/item.html:205
+#: part/templates/part/detail.html:141 stock/templates/stock/item.html:132
+#: stock/templates/stock/item.html:235
msgid "Edit Notes"
msgstr "编辑备注"
@@ -1373,7 +1374,7 @@ msgstr ""
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:303
+#: build/templates/build/index.html:18 part/templates/part/detail.html:320
msgid "New Build Order"
msgstr "新建生产订单"
@@ -1453,23 +1454,23 @@ msgstr "生产产出已删除"
msgid "Delete Build Order"
msgstr "删除生产订单"
-#: common/files.py:67
+#: common/files.py:65
msgid "Unsupported file format: {ext.upper()}"
msgstr "不支持的文件格式: {ext.uper()}"
-#: common/files.py:69
+#: common/files.py:67
msgid "Error reading file (invalid encoding)"
msgstr ""
-#: common/files.py:74
+#: common/files.py:72
msgid "Error reading file (invalid format)"
msgstr ""
-#: common/files.py:76
+#: common/files.py:74
msgid "Error reading file (incorrect dimension)"
msgstr ""
-#: common/files.py:78
+#: common/files.py:76
msgid "Error reading file (data could be corrupted)"
msgstr ""
@@ -1490,740 +1491,828 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:344 common/models.py:998 common/models.py:1206
-msgid "Settings key (must be unique - case insensitive"
+#: common/models.py:352
+msgid "Settings key (must be unique - case insensitive)"
msgstr ""
-#: common/models.py:346
+#: common/models.py:354
msgid "Settings value"
msgstr ""
-#: common/models.py:380
+#: common/models.py:388
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:400
+#: common/models.py:408
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:411
+#: common/models.py:419
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:434
+#: common/models.py:442
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:553
+#: common/models.py:561
msgid "No group"
msgstr ""
-#: common/models.py:595
+#: common/models.py:603
msgid "Restart required"
msgstr ""
-#: common/models.py:596
+#: common/models.py:604
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:603
+#: common/models.py:611
msgid "InvenTree Instance Name"
msgstr ""
-#: common/models.py:605
+#: common/models.py:613
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:609
+#: common/models.py:617
msgid "Use instance name"
msgstr ""
-#: common/models.py:610
+#: common/models.py:618
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:616 company/models.py:100 company/models.py:101
+#: common/models.py:624 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr "公司名称"
-#: common/models.py:617
+#: common/models.py:625
msgid "Internal company name"
msgstr "内部公司名称"
-#: common/models.py:622
+#: common/models.py:630
msgid "Base URL"
msgstr ""
-#: common/models.py:623
+#: common/models.py:631
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:629
+#: common/models.py:637
msgid "Default Currency"
msgstr ""
-#: common/models.py:630
+#: common/models.py:638
msgid "Default currency"
msgstr ""
-#: common/models.py:636
+#: common/models.py:644
msgid "Download from URL"
msgstr ""
-#: common/models.py:637
+#: common/models.py:645
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:643 templates/InvenTree/settings/sidebar.html:31
+#: common/models.py:651 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
-#: common/models.py:644
+#: common/models.py:652
msgid "Enable barcode scanner support"
msgstr "启用条形码扫描支持"
-#: common/models.py:650
+#: common/models.py:658
msgid "IPN Regex"
msgstr ""
-#: common/models.py:651
+#: common/models.py:659
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:655
+#: common/models.py:663
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:656
+#: common/models.py:664
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:662
+#: common/models.py:670
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:663
+#: common/models.py:671
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:669
+#: common/models.py:677
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:670
+#: common/models.py:678
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:676
+#: common/models.py:684
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:677
+#: common/models.py:685
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:683
+#: common/models.py:691
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:684
+#: common/models.py:692
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:690
+#: common/models.py:698
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:691
+#: common/models.py:699
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:697 part/models.py:2482 report/models.py:187
+#: common/models.py:705 part/models.py:2489 report/models.py:187
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:422
msgid "Template"
msgstr "模板"
-#: common/models.py:698
+#: common/models.py:706
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:704 part/models.py:919 templates/js/translated/bom.js:1068
+#: common/models.py:712 part/models.py:921 templates/js/translated/bom.js:1082
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:434
msgid "Assembly"
msgstr "组装"
-#: common/models.py:705
+#: common/models.py:713
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:711 part/models.py:925
+#: common/models.py:719 part/models.py:927
#: templates/js/translated/table_filters.js:438
msgid "Component"
msgstr "组件"
-#: common/models.py:712
+#: common/models.py:720
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:718 part/models.py:936
+#: common/models.py:726 part/models.py:938
msgid "Purchaseable"
msgstr "可购买"
-#: common/models.py:719
+#: common/models.py:727
msgid "Parts are purchaseable by default"
msgstr "商品默认可购买"
-#: common/models.py:725 part/models.py:941
+#: common/models.py:733 part/models.py:943
#: templates/js/translated/table_filters.js:446
msgid "Salable"
msgstr "可销售"
-#: common/models.py:726
+#: common/models.py:734
msgid "Parts are salable by default"
msgstr "商品默认可销售"
-#: common/models.py:732 part/models.py:931
+#: common/models.py:740 part/models.py:933
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
#: templates/js/translated/table_filters.js:450
msgid "Trackable"
msgstr "可追踪"
-#: common/models.py:733
+#: common/models.py:741
msgid "Parts are trackable by default"
msgstr "商品默认可跟踪"
-#: common/models.py:739 part/models.py:951
+#: common/models.py:747 part/models.py:953
#: part/templates/part/part_base.html:147
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr "虚拟"
-#: common/models.py:740
+#: common/models.py:748
msgid "Parts are virtual by default"
msgstr "商品默认是虚拟的"
-#: common/models.py:746
+#: common/models.py:754
msgid "Show Import in Views"
msgstr "视图中显示导入"
-#: common/models.py:747
+#: common/models.py:755
msgid "Display the import wizard in some part views"
msgstr "在一些商品视图中显示导入向导"
-#: common/models.py:753
+#: common/models.py:761
msgid "Show Price in Forms"
msgstr "在表格中显示价格"
-#: common/models.py:754
+#: common/models.py:762
msgid "Display part price in some forms"
msgstr "以某些表格显示商品价格"
-#: common/models.py:765
+#: common/models.py:773
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:766
+#: common/models.py:774
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:772
+#: common/models.py:780
msgid "Show related parts"
msgstr "显示相关商品"
-#: common/models.py:773
+#: common/models.py:781
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:779
+#: common/models.py:787
msgid "Create initial stock"
msgstr "创建初始库存"
-#: common/models.py:780
+#: common/models.py:788
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:786
+#: common/models.py:794
msgid "Internal Prices"
msgstr "内部价格"
-#: common/models.py:787
+#: common/models.py:795
msgid "Enable internal prices for parts"
msgstr "启用内部商品价格"
-#: common/models.py:793
+#: common/models.py:801
msgid "Internal Price as BOM-Price"
msgstr "内部价格为BOM价格"
-#: common/models.py:794
+#: common/models.py:802
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr "在 BOM价格计算中使用内部价格(如设置)"
-#: common/models.py:800
+#: common/models.py:808
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:801
+#: common/models.py:809
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:808
+#: common/models.py:816
msgid "Enable Reports"
msgstr ""
-#: common/models.py:809
+#: common/models.py:817
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:815 templates/stats.html:25
+#: common/models.py:823 templates/stats.html:25
msgid "Debug Mode"
msgstr "调试模式"
-#: common/models.py:816
+#: common/models.py:824
msgid "Generate reports in debug mode (HTML output)"
msgstr "在调试模式生成报告(HTML输出)"
-#: common/models.py:822
+#: common/models.py:830
msgid "Page Size"
msgstr "页面大小"
-#: common/models.py:823
+#: common/models.py:831
msgid "Default page size for PDF reports"
msgstr "PDF 报表默认页面大小"
-#: common/models.py:833
+#: common/models.py:841
msgid "Test Reports"
msgstr "测试报表"
-#: common/models.py:834
+#: common/models.py:842
msgid "Enable generation of test reports"
msgstr "启用生成测试报表"
-#: common/models.py:840
+#: common/models.py:848
msgid "Stock Expiry"
msgstr "库存到期"
-#: common/models.py:841
+#: common/models.py:849
msgid "Enable stock expiry functionality"
msgstr "启用库存到期功能"
-#: common/models.py:847
+#: common/models.py:855
msgid "Sell Expired Stock"
msgstr "销售过期库存"
-#: common/models.py:848
+#: common/models.py:856
msgid "Allow sale of expired stock"
msgstr "允许销售过期库存"
-#: common/models.py:854
+#: common/models.py:862
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:855
+#: common/models.py:863
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:857
+#: common/models.py:865
msgid "days"
msgstr "天"
-#: common/models.py:862
+#: common/models.py:870
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:863
+#: common/models.py:871
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:869
+#: common/models.py:877
msgid "Stock Ownership Control"
msgstr "库存所有权控制"
-#: common/models.py:870
+#: common/models.py:878
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:876
-msgid "Group by Part"
-msgstr "按商品分组"
-
-#: common/models.py:877
-msgid "Group stock items by part reference in table views"
-msgstr ""
-
-#: common/models.py:883
+#: common/models.py:884
msgid "Build Order Reference Prefix"
msgstr "生产订单参考前缀"
-#: common/models.py:884
+#: common/models.py:885
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:889
+#: common/models.py:890
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:890
+#: common/models.py:891
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:894
+#: common/models.py:895
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:895
+#: common/models.py:896
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:900
+#: common/models.py:901
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:901
+#: common/models.py:902
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:907
+#: common/models.py:908
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:908
+#: common/models.py:909
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:913
+#: common/models.py:914
msgid "Enable registration"
msgstr ""
-#: common/models.py:914
+#: common/models.py:915
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:919
+#: common/models.py:920
msgid "Enable SSO"
msgstr ""
-#: common/models.py:920
+#: common/models.py:921
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:925
+#: common/models.py:926
msgid "Email required"
msgstr ""
-#: common/models.py:926
+#: common/models.py:927
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:931
+#: common/models.py:932
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:932
+#: common/models.py:933
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:937
+#: common/models.py:938
msgid "Mail twice"
msgstr ""
-#: common/models.py:938
+#: common/models.py:939
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:943
+#: common/models.py:944
msgid "Password twice"
msgstr ""
-#: common/models.py:944
+#: common/models.py:945
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:949
+#: common/models.py:950
msgid "Group on signup"
msgstr ""
-#: common/models.py:950
+#: common/models.py:951
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:955
+#: common/models.py:956
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:956
+#: common/models.py:957
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:961
+#: common/models.py:964
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:962
+#: common/models.py:965
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:968
+#: common/models.py:971
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:969
+#: common/models.py:972
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:975
+#: common/models.py:978
msgid "Enable app integration"
msgstr ""
-#: common/models.py:976
+#: common/models.py:979
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:982
+#: common/models.py:985
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:983
+#: common/models.py:986
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1029
+#: common/models.py:992
+msgid "Enable event integration"
+msgstr ""
+
+#: common/models.py:993
+msgid "Enable plugins to respond to internal events"
+msgstr ""
+
+#: common/models.py:1008 common/models.py:1216
+msgid "Settings key (must be unique - case insensitive"
+msgstr ""
+
+#: common/models.py:1039
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1030
+#: common/models.py:1040
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1035
+#: common/models.py:1045
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1036
+#: common/models.py:1046
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1041
+#: common/models.py:1051
msgid "Show latest parts"
msgstr "显示最近商品"
-#: common/models.py:1042
+#: common/models.py:1052
msgid "Show latest parts on the homepage"
msgstr "在主页上显示最近商品"
-#: common/models.py:1047
+#: common/models.py:1057
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1048
+#: common/models.py:1058
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1054
+#: common/models.py:1064
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1055
+#: common/models.py:1065
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1070
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1061
+#: common/models.py:1071
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1066
+#: common/models.py:1076
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1067
+#: common/models.py:1077
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1072
+#: common/models.py:1082
msgid "Show low stock"
msgstr ""
-#: common/models.py:1073
+#: common/models.py:1083
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1078
+#: common/models.py:1088
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1079
+#: common/models.py:1089
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1084
+#: common/models.py:1094
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1085
+#: common/models.py:1095
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1090
+#: common/models.py:1100
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1091
+#: common/models.py:1101
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1096
+#: common/models.py:1106
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1097
+#: common/models.py:1107
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1102
+#: common/models.py:1112
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1103
+#: common/models.py:1113
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1108
+#: common/models.py:1118
msgid "Show overdue builds"
msgstr "显示逾期生产"
-#: common/models.py:1109
+#: common/models.py:1119
msgid "Show overdue builds on the homepage"
msgstr "在主页上显示逾期的生产"
-#: common/models.py:1114
+#: common/models.py:1124
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1115
+#: common/models.py:1125
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1120
+#: common/models.py:1130
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1121
+#: common/models.py:1131
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1136
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1127
+#: common/models.py:1137
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1142
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1143
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1149
msgid "Inline label display"
msgstr "内嵌标签显示"
-#: common/models.py:1140
+#: common/models.py:1150
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr "在浏览器中显示 PDF 标签,而不是以文件形式下载"
-#: common/models.py:1146
+#: common/models.py:1156
msgid "Inline report display"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1157
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr "在浏览器中显示 PDF 报告,而不是以文件形式下载"
-#: common/models.py:1153
+#: common/models.py:1163
msgid "Search Preview Results"
msgstr "搜索预览结果"
-#: common/models.py:1154
+#: common/models.py:1164
msgid "Number of results to show in search preview window"
msgstr "搜索预览窗口中显示的结果数"
-#: common/models.py:1160
+#: common/models.py:1170
msgid "Search Show Stock"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1171
msgid "Display stock levels in search preview window"
msgstr ""
-#: common/models.py:1167
+#: common/models.py:1177
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1168
+#: common/models.py:1178
msgid "Hide inactive parts in search preview window"
msgstr ""
-#: common/models.py:1174
+#: common/models.py:1184
msgid "Show Quantity in Forms"
msgstr "在表格中显示数量"
-#: common/models.py:1175
+#: common/models.py:1185
msgid "Display available part quantity in some forms"
msgstr "在某些表格中显示可用的商品数量"
-#: common/models.py:1181
+#: common/models.py:1191
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1182
+#: common/models.py:1192
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1188
+#: common/models.py:1198
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1189
+#: common/models.py:1199
msgid "InvenTree navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1254 company/forms.py:43
+#: common/models.py:1264 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1261 company/serializers.py:264
+#: common/models.py:1271 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:909 templates/js/translated/part.js:1860
+#: templates/js/translated/part.js:915 templates/js/translated/part.js:1867
msgid "Price"
msgstr "价格"
-#: common/models.py:1262
+#: common/models.py:1272
msgid "Unit price at specified quantity"
msgstr ""
+#: common/models.py:1429 common/models.py:1568
+msgid "Endpoint"
+msgstr ""
+
+#: common/models.py:1430
+msgid "Endpoint at which this webhook is received"
+msgstr ""
+
+#: common/models.py:1439
+msgid "Name for this webhook"
+msgstr ""
+
+#: common/models.py:1444 part/models.py:948 plugin/models.py:46
+#: templates/js/translated/table_filters.js:34
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:295
+#: templates/js/translated/table_filters.js:417
+msgid "Active"
+msgstr ""
+
+#: common/models.py:1445
+msgid "Is this webhook active"
+msgstr ""
+
+#: common/models.py:1459
+msgid "Token"
+msgstr ""
+
+#: common/models.py:1460
+msgid "Token for access"
+msgstr ""
+
+#: common/models.py:1467
+msgid "Secret"
+msgstr ""
+
+#: common/models.py:1468
+msgid "Shared secret for HMAC"
+msgstr ""
+
+#: common/models.py:1535
+msgid "Message ID"
+msgstr ""
+
+#: common/models.py:1536
+msgid "Unique identifier for this message"
+msgstr ""
+
+#: common/models.py:1544
+msgid "Host"
+msgstr ""
+
+#: common/models.py:1545
+msgid "Host from which this message was received"
+msgstr ""
+
+#: common/models.py:1552
+msgid "Header"
+msgstr ""
+
+#: common/models.py:1553
+msgid "Header of this message"
+msgstr ""
+
+#: common/models.py:1559
+msgid "Body"
+msgstr ""
+
+#: common/models.py:1560
+msgid "Body of this message"
+msgstr ""
+
+#: common/models.py:1569
+msgid "Endpoint on which this message was received"
+msgstr ""
+
+#: common/models.py:1574
+msgid "Worked on"
+msgstr ""
+
+#: common/models.py:1575
+msgid "Was the work on this message finished?"
+msgstr ""
+
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
#: part/templates/part/bom_upload/upload_file.html:52
-#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
-#: part/views.py:764
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:213
+#: part/views.py:773
msgid "Upload File"
msgstr "上传文件"
#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
-#: part/views.py:765
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:214
+#: part/views.py:774
msgid "Match Fields"
msgstr "匹配字段"
@@ -2315,7 +2404,7 @@ msgstr ""
msgid "Link to external company information"
msgstr "链接到外部公司信息"
-#: company/models.py:139 part/models.py:838
+#: company/models.py:139 part/models.py:840
msgid "Image"
msgstr "图片"
@@ -2352,8 +2441,8 @@ msgstr "货币"
msgid "Default currency used for this company"
msgstr "该公司使用的默认货币"
-#: company/models.py:320 company/models.py:535 stock/models.py:469
-#: stock/templates/stock/item_base.html:142
+#: company/models.py:320 company/models.py:535 stock/models.py:471
+#: stock/templates/stock/item_base.html:142 templates/js/translated/bom.js:328
msgid "Base Part"
msgstr ""
@@ -2380,7 +2469,7 @@ msgstr "选择制造商"
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:533
#: templates/js/translated/company.js:818 templates/js/translated/order.js:1038
-#: templates/js/translated/part.js:245 templates/js/translated/part.js:889
+#: templates/js/translated/part.js:245 templates/js/translated/part.js:895
msgid "MPN"
msgstr "MPN"
@@ -2409,8 +2498,8 @@ msgstr "参数名称"
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1960 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:709 templates/js/translated/stock.js:1296
+#: stock/models.py:1988 templates/js/translated/company.js:647
+#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1304
msgid "Value"
msgstr "数值"
@@ -2418,10 +2507,10 @@ msgstr "数值"
msgid "Parameter value"
msgstr "参数值"
-#: company/models.py:429 part/models.py:913 part/models.py:2450
+#: company/models.py:429 part/models.py:915 part/models.py:2457
#: part/templates/part/part_base.html:288
-#: templates/InvenTree/settings/settings.html:284
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:715
+#: templates/InvenTree/settings/settings.html:287
+#: templates/js/translated/company.js:653 templates/js/translated/part.js:721
msgid "Units"
msgstr "单位"
@@ -2434,13 +2523,13 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:78
-#: company/templates/company/supplier_part.html:87 order/models.py:224
+#: company/templates/company/supplier_part.html:87 order/models.py:227
#: order/templates/order/order_base.html:112
-#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
-#: part/bom.py:247 stock/templates/stock/item_base.html:397
+#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237
+#: part/bom.py:265 stock/templates/stock/item_base.html:397
#: templates/js/translated/company.js:337
#: templates/js/translated/company.js:774 templates/js/translated/order.js:823
-#: templates/js/translated/part.js:215 templates/js/translated/part.js:857
+#: templates/js/translated/part.js:215 templates/js/translated/part.js:863
#: templates/js/translated/table_filters.js:393
msgid "Supplier"
msgstr "供应商"
@@ -2450,8 +2539,8 @@ msgid "Select supplier"
msgstr "选择供应商"
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:1025
-#: templates/js/translated/part.js:226 templates/js/translated/part.js:875
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1025
+#: templates/js/translated/part.js:226 templates/js/translated/part.js:881
msgid "SKU"
msgstr "SKU"
@@ -2472,22 +2561,22 @@ msgid "Supplier part description"
msgstr "供应商商品描述"
#: company/models.py:576 company/templates/company/supplier_part.html:119
-#: part/models.py:2641 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2648 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr "备注"
-#: company/models.py:580 part/models.py:1779
+#: company/models.py:580 part/models.py:1781
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1779
+#: company/models.py:580 part/models.py:1781
msgid "Minimum charge (e.g. stocking fee)"
msgstr "最低收费(例如库存费)"
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:493 stock/templates/stock/item_base.html:338
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1791
+#: stock/models.py:495 stock/templates/stock/item_base.html:338
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1799
msgid "Packaging"
msgstr "打包"
@@ -2495,7 +2584,7 @@ msgstr "打包"
msgid "Part packaging"
msgstr "商品打包"
-#: company/models.py:584 part/models.py:1781
+#: company/models.py:584 part/models.py:1783
msgid "multiple"
msgstr ""
@@ -2554,12 +2643,12 @@ msgstr "上传新图片"
msgid "Download image from URL"
msgstr "从 URL 下载图片"
-#: company/templates/company/company_base.html:83 order/models.py:547
-#: order/templates/order/sales_order_base.html:115 stock/models.py:512
-#: stock/models.py:513 stock/serializers.py:625
+#: company/templates/company/company_base.html:83 order/models.py:552
+#: order/templates/order/sales_order_base.html:115 stock/models.py:514
+#: stock/models.py:515 stock/serializers.py:626
#: stock/templates/stock/item_base.html:290
#: templates/js/translated/company.js:329 templates/js/translated/order.js:1240
-#: templates/js/translated/stock.js:2452
+#: templates/js/translated/stock.js:2610
#: templates/js/translated/table_filters.js:397
msgid "Customer"
msgstr "客户"
@@ -2590,7 +2679,7 @@ msgstr "创建新的供应商商品"
#: company/templates/company/detail.html:20
#: company/templates/company/manufacturer_part.html:118
-#: part/templates/part/detail.html:336
+#: part/templates/part/detail.html:353
msgid "New Supplier Part"
msgstr "新建供应商商品"
@@ -2598,8 +2687,8 @@ msgstr "新建供应商商品"
#: company/templates/company/detail.html:79
#: company/templates/company/manufacturer_part.html:127
#: company/templates/company/manufacturer_part.html:156
-#: part/templates/part/category.html:171 part/templates/part/detail.html:345
-#: part/templates/part/detail.html:374
+#: part/templates/part/category.html:171 part/templates/part/detail.html:362
+#: part/templates/part/detail.html:391
msgid "Options"
msgstr "选项"
@@ -2627,7 +2716,7 @@ msgstr "制造商商品"
msgid "Create new manufacturer part"
msgstr "新建制造商商品"
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:364
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:381
msgid "New Manufacturer Part"
msgstr "新建制造商商品"
@@ -2641,7 +2730,7 @@ msgstr "供货商库存"
#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:68 part/templates/part/part_sidebar.html:33
+#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
@@ -2663,7 +2752,7 @@ msgstr "新建采购订单"
#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:91 part/templates/part/part_sidebar.html:37
+#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:41
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
@@ -2691,13 +2780,13 @@ msgstr "公司备注"
#: company/templates/company/detail.html:384
#: company/templates/company/manufacturer_part.html:215
-#: part/templates/part/detail.html:418
+#: part/templates/part/detail.html:435
msgid "Delete Supplier Parts?"
msgstr "删除供应商商品?"
#: company/templates/company/detail.html:385
#: company/templates/company/manufacturer_part.html:216
-#: part/templates/part/detail.html:419
+#: part/templates/part/detail.html:436
msgid "All selected supplier parts will be deleted"
msgstr "删除所有选定的供应商商品"
@@ -2714,7 +2803,7 @@ msgstr "制造商"
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:34
#: company/templates/company/supplier_part.html:159
-#: part/templates/part/detail.html:71 part/templates/part/part_base.html:76
+#: part/templates/part/detail.html:88 part/templates/part/part_base.html:76
msgid "Order part"
msgstr "订购商品"
@@ -2735,34 +2824,34 @@ msgstr "内部商品"
#: company/templates/company/manufacturer_part.html:114
#: company/templates/company/supplier_part.html:15 company/views.py:49
-#: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163
+#: part/templates/part/part_sidebar.html:35 part/templates/part/prices.html:163
#: templates/InvenTree/search.html:188 templates/navbar.html:45
msgid "Suppliers"
msgstr "供应商"
#: company/templates/company/manufacturer_part.html:129
-#: part/templates/part/detail.html:347
+#: part/templates/part/detail.html:364
msgid "Delete supplier parts"
msgstr "删除供应商商品"
#: company/templates/company/manufacturer_part.html:129
#: company/templates/company/manufacturer_part.html:158
#: company/templates/company/manufacturer_part.html:254
-#: part/templates/part/detail.html:347 part/templates/part/detail.html:376
+#: part/templates/part/detail.html:364 part/templates/part/detail.html:393
#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31
-#: users/models.py:210
+#: users/models.py:212
msgid "Delete"
msgstr "删除"
#: company/templates/company/manufacturer_part.html:143
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:17
-#: part/templates/part/detail.html:170 part/templates/part/part_sidebar.html:8
+#: part/templates/part/detail.html:187 part/templates/part/part_sidebar.html:8
msgid "Parameters"
msgstr "参数"
#: company/templates/company/manufacturer_part.html:147
-#: part/templates/part/detail.html:175
+#: part/templates/part/detail.html:192
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
@@ -2773,7 +2862,7 @@ msgid "Delete parameters"
msgstr "删除参数"
#: company/templates/company/manufacturer_part.html:191
-#: part/templates/part/detail.html:862
+#: part/templates/part/detail.html:892
msgid "Add Parameter"
msgstr "添加参数"
@@ -2802,9 +2891,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:477
+#: company/templates/company/supplier_part.html:24 stock/models.py:479
#: stock/templates/stock/item_base.html:402
-#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1748
+#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1756
msgid "Supplier Part"
msgstr "供应商商品"
@@ -2830,7 +2919,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:167
-#: templates/js/translated/stock.js:360
+#: templates/js/translated/stock.js:368
msgid "New Stock Item"
msgstr ""
@@ -2840,7 +2929,7 @@ msgid "Supplier Part Orders"
msgstr "供应商商品订单"
#: company/templates/company/supplier_part.html:160
-#: part/templates/part/detail.html:72
+#: part/templates/part/detail.html:89
msgid "Order Part"
msgstr "订购商品"
@@ -2851,7 +2940,7 @@ msgstr "价格信息"
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1619
+#: part/templates/part/prices.html:271 part/views.py:1628
msgid "Add Price Break"
msgstr ""
@@ -2859,11 +2948,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1681
+#: company/templates/company/supplier_part.html:224 part/views.py:1690
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1667
+#: company/templates/company/supplier_part.html:238 part/views.py:1676
msgid "Edit Price Break"
msgstr ""
@@ -2881,10 +2970,10 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:150
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/bom.js:328 templates/js/translated/part.js:489
-#: templates/js/translated/part.js:624 templates/js/translated/part.js:1118
-#: templates/js/translated/part.js:1279 templates/js/translated/stock.js:927
-#: templates/js/translated/stock.js:1580 templates/navbar.html:28
+#: templates/js/translated/bom.js:340 templates/js/translated/part.js:495
+#: templates/js/translated/part.js:630 templates/js/translated/part.js:1125
+#: templates/js/translated/part.js:1286 templates/js/translated/stock.js:935
+#: templates/js/translated/stock.js:1588 templates/navbar.html:28
msgid "Stock"
msgstr "库存"
@@ -2907,8 +2996,8 @@ msgstr "定价"
#: stock/templates/stock/location.html:151
#: stock/templates/stock/location.html:163
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2351
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2509
+#: templates/stats.html:105 templates/stats.html:114 users/models.py:43
msgid "Stock Items"
msgstr "库存项"
@@ -2937,20 +3026,20 @@ msgstr "公司"
msgid "New Company"
msgstr "新建公司信息"
-#: company/views.py:129 part/views.py:584
+#: company/views.py:129 part/views.py:593
msgid "Download Image"
msgstr "下载图片"
-#: company/views.py:158 part/views.py:616
+#: company/views.py:158 part/views.py:625
msgid "Image size exceeds maximum allowable size for download"
msgstr "图像大小超过下载允许的最大尺寸"
-#: company/views.py:165 part/views.py:623
+#: company/views.py:165 part/views.py:632
#, python-brace-format
msgid "Invalid response: {code}"
msgstr "无效响应: {code}"
-#: company/views.py:174 part/views.py:632
+#: company/views.py:174 part/views.py:641
msgid "Supplied URL is not a valid image file"
msgstr "提供的 URL 不是一个有效的图片文件"
@@ -3036,282 +3125,282 @@ msgstr ""
msgid "Cancel order"
msgstr "取消订单"
-#: order/models.py:122
+#: order/models.py:125
msgid "Order description"
msgstr ""
-#: order/models.py:124
+#: order/models.py:127
msgid "Link to external page"
msgstr ""
-#: order/models.py:132
+#: order/models.py:135
msgid "Created By"
msgstr ""
-#: order/models.py:139
+#: order/models.py:142
msgid "User or group responsible for this order"
msgstr "负责此订单的用户或群组"
-#: order/models.py:144
+#: order/models.py:147
msgid "Order notes"
msgstr ""
-#: order/models.py:211 order/models.py:537
+#: order/models.py:214 order/models.py:542
msgid "Order reference"
msgstr ""
-#: order/models.py:216 order/models.py:552
+#: order/models.py:219 order/models.py:557
msgid "Purchase order status"
msgstr ""
-#: order/models.py:225
+#: order/models.py:228
msgid "Company from which the items are being ordered"
msgstr "订购该商品的公司"
-#: order/models.py:228 order/templates/order/order_base.html:118
+#: order/models.py:231 order/templates/order/order_base.html:118
#: templates/js/translated/order.js:832
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:228
+#: order/models.py:231
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:235
+#: order/models.py:238
msgid "received by"
msgstr ""
-#: order/models.py:240
+#: order/models.py:243
msgid "Issue Date"
msgstr ""
-#: order/models.py:241
+#: order/models.py:244
msgid "Date order was issued"
msgstr ""
-#: order/models.py:246
+#: order/models.py:249
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:247
+#: order/models.py:250
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:253
+#: order/models.py:256
msgid "Date order was completed"
msgstr ""
-#: order/models.py:282
+#: order/models.py:285
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:411
-msgid "Quantity must be an integer"
-msgstr "数量必须是整数"
-
-#: order/models.py:415
+#: order/models.py:420
msgid "Quantity must be a positive number"
msgstr "数量必须大于0"
-#: order/models.py:548
+#: order/models.py:553
msgid "Company to which the items are being sold"
msgstr "向其出售该商品的公司"
-#: order/models.py:554
+#: order/models.py:559
msgid "Customer Reference "
msgstr ""
-#: order/models.py:554
+#: order/models.py:559
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:559
+#: order/models.py:564
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:562 order/models.py:1028
+#: order/models.py:567 order/models.py:1048
#: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429
msgid "Shipment Date"
msgstr ""
-#: order/models.py:569
+#: order/models.py:574
msgid "shipped by"
msgstr ""
-#: order/models.py:635
+#: order/models.py:640
msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:639
+#: order/models.py:644
msgid "Only a pending order can be marked as complete"
msgstr ""
-#: order/models.py:642
+#: order/models.py:647
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:645
+#: order/models.py:650
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:797
+#: order/models.py:806
msgid "Item quantity"
msgstr ""
-#: order/models.py:803
+#: order/models.py:812
msgid "Line item reference"
msgstr ""
-#: order/models.py:805
+#: order/models.py:814
msgid "Line item notes"
msgstr ""
-#: order/models.py:835 order/models.py:926 order/models.py:1022
-#: templates/js/translated/order.js:1820
+#: order/models.py:842
+msgid "Supplier part must match supplier"
+msgstr ""
+
+#: order/models.py:855 order/models.py:946 order/models.py:1042
+#: templates/js/translated/order.js:1820 templates/js/translated/stock.js:2271
msgid "Order"
msgstr ""
-#: order/models.py:836 order/templates/order/order_base.html:9
+#: order/models.py:856 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:352
-#: templates/js/translated/order.js:801 templates/js/translated/part.js:832
-#: templates/js/translated/stock.js:1725 templates/js/translated/stock.js:2433
+#: templates/js/translated/order.js:801 templates/js/translated/part.js:838
+#: templates/js/translated/stock.js:1733 templates/js/translated/stock.js:2591
msgid "Purchase Order"
msgstr ""
-#: order/models.py:857
+#: order/models.py:877
msgid "Supplier part"
msgstr "供应商商品"
-#: order/models.py:864 order/templates/order/order_base.html:163
+#: order/models.py:884 order/templates/order/order_base.html:163
#: templates/js/translated/order.js:589 templates/js/translated/order.js:1118
-#: templates/js/translated/part.js:904 templates/js/translated/part.js:930
+#: templates/js/translated/part.js:910 templates/js/translated/part.js:937
#: templates/js/translated/table_filters.js:317
msgid "Received"
msgstr ""
-#: order/models.py:865
+#: order/models.py:885
msgid "Number of items received"
msgstr ""
-#: order/models.py:872 part/templates/part/prices.html:176 stock/models.py:606
+#: order/models.py:892 part/templates/part/prices.html:176 stock/models.py:608
#: stock/serializers.py:170 stock/templates/stock/item_base.html:359
-#: templates/js/translated/stock.js:1779
+#: templates/js/translated/stock.js:1787
msgid "Purchase Price"
msgstr "采购价格"
-#: order/models.py:873
+#: order/models.py:893
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:881
+#: order/models.py:901
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:936 part/templates/part/part_pricing.html:112
+#: order/models.py:956 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr "销售价格"
-#: order/models.py:937
+#: order/models.py:957
msgid "Unit sale price"
msgstr ""
-#: order/models.py:942
+#: order/models.py:962
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:1029
+#: order/models.py:1049
msgid "Date of shipment"
msgstr ""
-#: order/models.py:1036
+#: order/models.py:1056
msgid "Checked By"
msgstr ""
-#: order/models.py:1037
+#: order/models.py:1057
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:1045
+#: order/models.py:1065
msgid "Shipment number"
msgstr ""
-#: order/models.py:1052
+#: order/models.py:1072
msgid "Shipment notes"
msgstr ""
-#: order/models.py:1059
+#: order/models.py:1079
msgid "Tracking Number"
msgstr ""
-#: order/models.py:1060
+#: order/models.py:1080
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:1070
+#: order/models.py:1090
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:1073
+#: order/models.py:1093
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:1149 order/models.py:1151
+#: order/models.py:1171 order/models.py:1173
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:1155
+#: order/models.py:1177
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:1157
+#: order/models.py:1179
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:1160
+#: order/models.py:1182
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:1164
+#: order/models.py:1186
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:1170 order/serializers.py:734
+#: order/models.py:1192 order/serializers.py:740
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:1173
+#: order/models.py:1195
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:1174
+#: order/models.py:1196
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:1182
+#: order/models.py:1204
msgid "Line"
msgstr ""
-#: order/models.py:1190 order/serializers.py:825 order/serializers.py:953
-#: templates/js/translated/model_renderers.js:251
+#: order/models.py:1212 order/serializers.py:831 order/serializers.py:959
+#: templates/js/translated/model_renderers.js:285
msgid "Shipment"
msgstr ""
-#: order/models.py:1191
+#: order/models.py:1213
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:1203
+#: order/models.py:1225
msgid "Item"
msgstr ""
-#: order/models.py:1204
+#: order/models.py:1226
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:1207
+#: order/models.py:1229
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3319,7 +3408,7 @@ msgstr ""
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:211 order/serializers.py:790
+#: order/serializers.py:211 order/serializers.py:796
msgid "Line Item"
msgstr ""
@@ -3355,39 +3444,39 @@ msgstr ""
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:581
+#: order/serializers.py:587
msgid "Sale price currency"
msgstr ""
-#: order/serializers.py:649
+#: order/serializers.py:655
msgid "No shipment details provided"
msgstr ""
-#: order/serializers.py:699 order/serializers.py:802
+#: order/serializers.py:705 order/serializers.py:808
msgid "Line item is not associated with this order"
msgstr ""
-#: order/serializers.py:721
+#: order/serializers.py:727
msgid "Quantity must be positive"
msgstr ""
-#: order/serializers.py:815
+#: order/serializers.py:821
msgid "Enter serial numbers to allocate"
msgstr ""
-#: order/serializers.py:839 order/serializers.py:964
+#: order/serializers.py:845 order/serializers.py:970
msgid "Shipment has already been shipped"
msgstr ""
-#: order/serializers.py:842 order/serializers.py:967
+#: order/serializers.py:848 order/serializers.py:973
msgid "Shipment is not associated with this order"
msgstr ""
-#: order/serializers.py:894
+#: order/serializers.py:900
msgid "No match found for the following serial numbers"
msgstr ""
-#: order/serializers.py:904
+#: order/serializers.py:910
msgid "The following serial numbers are already allocated"
msgstr ""
@@ -3441,6 +3530,7 @@ msgstr ""
#: order/templates/order/order_base.html:94
#: order/templates/order/sales_order_base.html:89
+#: templates/js/translated/stock.js:2327
msgid "Order Status"
msgstr ""
@@ -3538,7 +3628,7 @@ msgstr ""
#: part/templates/part/import_wizard/match_references.html:49
#: templates/js/translated/build.js:300 templates/js/translated/build.js:1311
#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488
-#: templates/js/translated/stock.js:593 templates/js/translated/stock.js:761
+#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769
msgid "Remove row"
msgstr "移除行"
@@ -3729,7 +3819,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:48
-#: templates/js/translated/bom.js:720 templates/js/translated/build.js:1243
+#: templates/js/translated/bom.js:732 templates/js/translated/build.js:1243
msgid "Actions"
msgstr ""
@@ -3832,447 +3922,448 @@ msgstr "指定初始初始商品仓储地点"
msgid "This field is required"
msgstr "此字段为必填"
-#: part/bom.py:125 part/models.py:81 part/models.py:847
+#: part/bom.py:125 part/models.py:83 part/models.py:849
#: part/templates/part/category.html:108 part/templates/part/part_base.html:338
msgid "Default Location"
msgstr "默认仓储地点"
-#: part/bom.py:126 part/templates/part/part_base.html:185
+#: part/bom.py:126 templates/email/low_stock_notification.html:17
+msgid "Total Stock"
+msgstr ""
+
+#: part/bom.py:127 part/templates/part/part_base.html:185
msgid "Available Stock"
msgstr "可用库存"
-#: part/forms.py:85
+#: part/bom.py:128 part/templates/part/part_base.html:203
+#: templates/js/translated/part.js:1301
+msgid "On Order"
+msgstr ""
+
+#: part/forms.py:84
msgid "Select part category"
msgstr "选择类别"
-#: part/forms.py:122
+#: part/forms.py:121
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:126
+#: part/forms.py:125
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:146
+#: part/forms.py:145
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:82
+#: part/models.py:84
msgid "Default location for parts in this category"
msgstr "此类别商品的默认仓储地点"
-#: part/models.py:85
+#: part/models.py:87
msgid "Default keywords"
msgstr ""
-#: part/models.py:85
+#: part/models.py:87
msgid "Default keywords for parts in this category"
msgstr "此类别商品的默认关键字"
-#: part/models.py:95 part/models.py:2526 part/templates/part/category.html:15
+#: part/models.py:97 part/models.py:2533 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "商品类别"
-#: part/models.py:96 part/templates/part/category.html:128
-#: templates/InvenTree/search.html:95 templates/stats.html:84
+#: part/models.py:98 part/templates/part/category.html:128
+#: templates/InvenTree/search.html:95 templates/stats.html:96
#: users/models.py:40
msgid "Part Categories"
msgstr "商品类别"
-#: part/models.py:358 part/templates/part/cat_link.html:3
+#: part/models.py:360 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:17 part/templates/part/category.html:133
#: part/templates/part/category.html:153
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:37
-#: templates/js/translated/part.js:1656 templates/navbar.html:21
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+#: templates/js/translated/part.js:1663 templates/navbar.html:21
+#: templates/stats.html:92 templates/stats.html:101 users/models.py:41
msgid "Parts"
msgstr "商品"
-#: part/models.py:450
+#: part/models.py:452
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:500 part/models.py:512
+#: part/models.py:502 part/models.py:514
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:642
+#: part/models.py:644
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:646
+#: part/models.py:648
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:651
+#: part/models.py:653
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:746
+#: part/models.py:748
msgid "Duplicate IPN not allowed in part settings"
msgstr "在商品设置中不允许重复的IPN"
-#: part/models.py:771
+#: part/models.py:773
msgid "Part name"
msgstr "商品名称"
-#: part/models.py:778
+#: part/models.py:780
msgid "Is Template"
msgstr ""
-#: part/models.py:779
+#: part/models.py:781
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:789
+#: part/models.py:791
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:790
+#: part/models.py:792
msgid "Variant Of"
msgstr ""
-#: part/models.py:796
+#: part/models.py:798
msgid "Part description"
msgstr "商品描述"
-#: part/models.py:801 part/templates/part/category.html:86
+#: part/models.py:803 part/templates/part/category.html:86
#: part/templates/part/part_base.html:302
msgid "Keywords"
msgstr "关键词"
-#: part/models.py:802
+#: part/models.py:804
msgid "Part keywords to improve visibility in search results"
msgstr "提高搜索结果可见性的关键字"
-#: part/models.py:809 part/models.py:2276 part/models.py:2525
+#: part/models.py:811 part/models.py:2283 part/models.py:2532
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:183
-#: templates/js/translated/part.js:1261
+#: templates/InvenTree/settings/settings.html:186
+#: templates/js/translated/part.js:1268
msgid "Category"
msgstr "类别"
-#: part/models.py:810
+#: part/models.py:812
msgid "Part category"
msgstr "商品类别"
-#: part/models.py:815 part/templates/part/part_base.html:274
-#: templates/js/translated/part.js:612 templates/js/translated/part.js:1214
-#: templates/js/translated/stock.js:1552
+#: part/models.py:817 part/templates/part/part_base.html:274
+#: templates/js/translated/part.js:618 templates/js/translated/part.js:1221
+#: templates/js/translated/stock.js:1560
msgid "IPN"
msgstr ""
-#: part/models.py:816
+#: part/models.py:818
msgid "Internal Part Number"
msgstr "内部商品编号"
-#: part/models.py:822
+#: part/models.py:824
msgid "Part revision or version number"
msgstr "商品版本号"
-#: part/models.py:823 part/templates/part/part_base.html:281
-#: report/models.py:200 templates/js/translated/part.js:616
+#: part/models.py:825 part/templates/part/part_base.html:281
+#: report/models.py:200 templates/js/translated/part.js:622
msgid "Revision"
msgstr ""
-#: part/models.py:845
+#: part/models.py:847
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:892 part/templates/part/part_base.html:347
+#: part/models.py:894 part/templates/part/part_base.html:347
msgid "Default Supplier"
msgstr ""
-#: part/models.py:893
+#: part/models.py:895
msgid "Default supplier part"
msgstr "默认供应商商品"
-#: part/models.py:900
+#: part/models.py:902
msgid "Default Expiry"
msgstr ""
-#: part/models.py:901
+#: part/models.py:903
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:906 part/templates/part/part_base.html:196
+#: part/models.py:908 part/templates/part/part_base.html:196
msgid "Minimum Stock"
msgstr "最低库存"
-#: part/models.py:907
+#: part/models.py:909
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:914
+#: part/models.py:916
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:920
+#: part/models.py:922
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:926
+#: part/models.py:928
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:932
+#: part/models.py:934
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:937
+#: part/models.py:939
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:942
+#: part/models.py:944
msgid "Can this part be sold to customers?"
msgstr "此商品可以销售给客户吗?"
-#: part/models.py:946 plugin/models.py:46
-#: templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:96
-#: templates/js/translated/table_filters.js:295
-#: templates/js/translated/table_filters.js:417
-msgid "Active"
-msgstr ""
-
-#: part/models.py:947
+#: part/models.py:949
msgid "Is this part active?"
msgstr ""
-#: part/models.py:952
+#: part/models.py:954
msgid "Is this a virtual part, such as a software product or license?"
msgstr "这是一个虚拟商品,如软件产品或许可证吗?"
-#: part/models.py:957
+#: part/models.py:959
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:960
+#: part/models.py:962
msgid "BOM checksum"
msgstr ""
-#: part/models.py:960
+#: part/models.py:962
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:963
+#: part/models.py:965
msgid "BOM checked by"
msgstr ""
-#: part/models.py:965
+#: part/models.py:967
msgid "BOM checked date"
msgstr ""
-#: part/models.py:969
+#: part/models.py:971
msgid "Creation User"
msgstr "新建用户"
-#: part/models.py:1781
+#: part/models.py:1783
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2326
+#: part/models.py:2333
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2343
+#: part/models.py:2350
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2363 templates/js/translated/part.js:1707
-#: templates/js/translated/stock.js:1276
+#: part/models.py:2370 templates/js/translated/part.js:1714
+#: templates/js/translated/stock.js:1284
msgid "Test Name"
msgstr ""
-#: part/models.py:2364
+#: part/models.py:2371
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2376
msgid "Test Description"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2377
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2375 templates/js/translated/part.js:1716
+#: part/models.py:2382 templates/js/translated/part.js:1723
#: templates/js/translated/table_filters.js:281
msgid "Required"
msgstr ""
-#: part/models.py:2376
+#: part/models.py:2383
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2381 templates/js/translated/part.js:1724
+#: part/models.py:2388 templates/js/translated/part.js:1731
msgid "Requires Value"
msgstr ""
-#: part/models.py:2382
+#: part/models.py:2389
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2387 templates/js/translated/part.js:1731
+#: part/models.py:2394 templates/js/translated/part.js:1738
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2388
+#: part/models.py:2395
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2399
+#: part/models.py:2406
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2435
+#: part/models.py:2442
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2443
+#: part/models.py:2450
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2450
+#: part/models.py:2457
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2480
+#: part/models.py:2487
msgid "Parent Part"
msgstr ""
-#: part/models.py:2482 part/models.py:2531 part/models.py:2532
-#: templates/InvenTree/settings/settings.html:178
+#: part/models.py:2489 part/models.py:2538 part/models.py:2539
+#: templates/InvenTree/settings/settings.html:181
msgid "Parameter Template"
msgstr "参数模板"
-#: part/models.py:2484
+#: part/models.py:2491
msgid "Data"
msgstr ""
-#: part/models.py:2484
+#: part/models.py:2491
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2536 templates/InvenTree/settings/settings.html:187
+#: part/models.py:2543 templates/InvenTree/settings/settings.html:190
msgid "Default Value"
msgstr "默认值"
-#: part/models.py:2537
+#: part/models.py:2544
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2614
+#: part/models.py:2621
msgid "Select parent part"
msgstr ""
-#: part/models.py:2622
+#: part/models.py:2629
msgid "Sub part"
msgstr ""
-#: part/models.py:2623
+#: part/models.py:2630
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2629
+#: part/models.py:2636
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2631 templates/js/translated/bom.js:566
-#: templates/js/translated/bom.js:640
+#: part/models.py:2638 templates/js/translated/bom.js:578
+#: templates/js/translated/bom.js:652
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr "可选项"
-#: part/models.py:2631
+#: part/models.py:2638
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2634
+#: part/models.py:2641
msgid "Overage"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2642
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2638
+#: part/models.py:2645
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2641
+#: part/models.py:2648
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2643
+#: part/models.py:2650
msgid "Checksum"
msgstr ""
-#: part/models.py:2643
+#: part/models.py:2650
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2647 templates/js/translated/bom.js:657
+#: part/models.py:2654 templates/js/translated/bom.js:669
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr "继承项"
-#: part/models.py:2648
+#: part/models.py:2655
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2653 templates/js/translated/bom.js:649
+#: part/models.py:2660 templates/js/translated/bom.js:661
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2654
+#: part/models.py:2661
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2739 stock/models.py:355
+#: part/models.py:2746 stock/models.py:357
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2748 part/models.py:2750
+#: part/models.py:2755 part/models.py:2757
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2879
+#: part/models.py:2886
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2901
+#: part/models.py:2908
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2913
+#: part/models.py:2920
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2921
+#: part/models.py:2928
msgid "Substitute part"
msgstr ""
-#: part/models.py:2932
+#: part/models.py:2939
msgid "Part 1"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2943
msgid "Part 2"
msgstr ""
-#: part/models.py:2936
+#: part/models.py:2943
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2968
+#: part/models.py:2975
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4327,7 +4418,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:253
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:270
msgid "BOM actions"
msgstr ""
@@ -4499,7 +4590,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:375
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:348
msgid "Duplicate Part"
msgstr "复制部件"
@@ -4533,145 +4624,149 @@ msgid "Showing stock for all variants of %(full_name)s"
msgstr ""
#: part/templates/part/detail.html:43
+msgid "Part Stock Allocations"
+msgstr ""
+
+#: part/templates/part/detail.html:60
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:48
+#: part/templates/part/detail.html:65
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:105
+#: part/templates/part/detail.html:122
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:142
+#: part/templates/part/detail.html:159
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:146
+#: part/templates/part/detail.html:163
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:147
+#: part/templates/part/detail.html:164
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:174
+#: part/templates/part/detail.html:191
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:45
+#: part/templates/part/detail.html:228 part/templates/part/part_sidebar.html:49
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:215 part/templates/part/detail.html:216
+#: part/templates/part/detail.html:232 part/templates/part/detail.html:233
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:236 part/templates/part/part_sidebar.html:17
+#: part/templates/part/detail.html:253 part/templates/part/part_sidebar.html:17
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:241
+#: part/templates/part/detail.html:258
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:245 templates/js/translated/bom.js:70
+#: part/templates/part/detail.html:262 templates/js/translated/bom.js:70
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:247
+#: part/templates/part/detail.html:264
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:257
+#: part/templates/part/detail.html:274
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:259 templates/js/translated/part.js:272
+#: part/templates/part/detail.html:276 templates/js/translated/part.js:272
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:261
+#: part/templates/part/detail.html:278
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:266
+#: part/templates/part/detail.html:283
msgid "New BOM Item"
msgstr ""
-#: part/templates/part/detail.html:267
+#: part/templates/part/detail.html:284
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:280
+#: part/templates/part/detail.html:297
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:297
+#: part/templates/part/detail.html:314
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:322
+#: part/templates/part/detail.html:339
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:332
+#: part/templates/part/detail.html:349
msgid "Part Suppliers"
msgstr "商品供应商"
-#: part/templates/part/detail.html:360
+#: part/templates/part/detail.html:377
msgid "Part Manufacturers"
msgstr "商品制造商"
-#: part/templates/part/detail.html:376
+#: part/templates/part/detail.html:393
msgid "Delete manufacturer parts"
msgstr "删除制造商商品"
-#: part/templates/part/detail.html:558
+#: part/templates/part/detail.html:575
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:559
+#: part/templates/part/detail.html:576
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:608
+#: part/templates/part/detail.html:625
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:652
+#: part/templates/part/detail.html:682
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:660
+#: part/templates/part/detail.html:690
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:755
+#: part/templates/part/detail.html:785
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:812
+#: part/templates/part/detail.html:842
msgid "Edit Part Notes"
msgstr "编辑商品注释"
-#: part/templates/part/detail.html:925
+#: part/templates/part/detail.html:955
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:937
+#: part/templates/part/detail.html:967
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:949
+#: part/templates/part/detail.html:979
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1038
+#: part/templates/part/detail.html:1068
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4786,7 +4881,7 @@ msgstr "商品是虚拟的(不是实体零件)"
#: templates/js/translated/company.js:508
#: templates/js/translated/company.js:765
#: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:527 templates/js/translated/part.js:604
+#: templates/js/translated/part.js:533 templates/js/translated/part.js:610
msgid "Inactive"
msgstr ""
@@ -4805,10 +4900,6 @@ msgstr ""
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/part.js:1294
-msgid "On Order"
-msgstr ""
-
#: part/templates/part/part_base.html:210 templates/InvenTree/index.html:178
msgid "Required for Build Orders"
msgstr ""
@@ -4821,12 +4912,12 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:678
+#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:690
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1125
-#: templates/js/translated/part.js:1298
+#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1132
+#: templates/js/translated/part.js:1305
msgid "Building"
msgstr ""
@@ -4878,7 +4969,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:632
+#: templates/js/translated/bom.js:644
msgid "No supplier pricing available"
msgstr ""
@@ -4920,7 +5011,12 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/templates/part/part_sidebar.html:41
+#: part/templates/part/part_sidebar.html:31
+#: stock/templates/stock/stock_sidebar.html:8
+msgid "Allocations"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:45
msgid "Test Templates"
msgstr ""
@@ -4993,7 +5089,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:626
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:638
msgid "Supplier Cost"
msgstr ""
@@ -5015,7 +5111,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1690
+#: part/templates/part/prices.html:215 part/views.py:1699
msgid "Add Internal Price Break"
msgstr ""
@@ -5035,9 +5131,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr "为以下商品设置类别"
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:588
-#: templates/js/translated/part.js:491 templates/js/translated/part.js:1115
-#: templates/js/translated/part.js:1302
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:600
+#: templates/js/translated/part.js:497 templates/js/translated/part.js:1122
+#: templates/js/translated/part.js:1309
msgid "No Stock"
msgstr ""
@@ -5054,116 +5150,116 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:116
+#: part/templatetags/inventree_extras.py:125
msgid "Unknown database"
msgstr ""
-#: part/views.py:92
+#: part/views.py:93
msgid "Set Part Category"
msgstr "设置商品类别"
-#: part/views.py:142
+#: part/views.py:143
#, python-brace-format
msgid "Set category for {n} parts"
msgstr "为 {n} 个商品设置类别"
-#: part/views.py:214
+#: part/views.py:215
msgid "Match References"
msgstr ""
-#: part/views.py:502
+#: part/views.py:511
msgid "None"
msgstr ""
-#: part/views.py:561
+#: part/views.py:570
msgid "Part QR Code"
msgstr "商品二维码"
-#: part/views.py:663
+#: part/views.py:672
msgid "Select Part Image"
msgstr "选择商品图像"
-#: part/views.py:689
+#: part/views.py:698
msgid "Updated part image"
msgstr "更新商品图像"
-#: part/views.py:692
+#: part/views.py:701
msgid "Part image not found"
msgstr "未找到商品图像"
-#: part/views.py:766
+#: part/views.py:775
msgid "Match Parts"
msgstr "匹配商品"
-#: part/views.py:1101
+#: part/views.py:1110
msgid "Export Bill of Materials"
msgstr ""
-#: part/views.py:1150
+#: part/views.py:1159
msgid "Confirm Part Deletion"
msgstr "确认删除商品"
-#: part/views.py:1157
+#: part/views.py:1166
msgid "Part was deleted"
msgstr "商品已删除"
-#: part/views.py:1166
+#: part/views.py:1175
msgid "Part Pricing"
msgstr "商品价格"
-#: part/views.py:1315
+#: part/views.py:1324
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1325
+#: part/views.py:1334
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1332
+#: part/views.py:1341
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1391 templates/js/translated/part.js:315
+#: part/views.py:1400 templates/js/translated/part.js:315
msgid "Edit Part Category"
msgstr "编辑商品类别"
-#: part/views.py:1429
+#: part/views.py:1438
msgid "Delete Part Category"
msgstr "删除商品类别"
-#: part/views.py:1435
+#: part/views.py:1444
msgid "Part category was deleted"
msgstr "商品类别已删除"
-#: part/views.py:1444
+#: part/views.py:1453
msgid "Create Category Parameter Template"
msgstr "创建类别参数模板"
-#: part/views.py:1545
+#: part/views.py:1554
msgid "Edit Category Parameter Template"
msgstr "编辑类别参数模板"
-#: part/views.py:1601
+#: part/views.py:1610
msgid "Delete Category Parameter Template"
msgstr "删除类别参数模板"
-#: part/views.py:1623
+#: part/views.py:1632
msgid "Added new price break"
msgstr ""
-#: part/views.py:1699
+#: part/views.py:1708
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1707
+#: part/views.py:1716
msgid "Delete Internal Price Break"
msgstr ""
-#: plugin/integration.py:124
+#: plugin/integration.py:138
msgid "No author found"
msgstr ""
-#: plugin/integration.py:136
+#: plugin/integration.py:152
msgid "No date found"
msgstr ""
@@ -5191,7 +5287,7 @@ msgstr ""
msgid "Is the plugin active"
msgstr ""
-#: plugin/models.py:195
+#: plugin/models.py:199
msgid "Plugin"
msgstr ""
@@ -5357,12 +5453,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:517 stock/templates/stock/item_base.html:156
+#: stock/models.py:519 stock/templates/stock/item_base.html:156
#: templates/js/translated/build.js:293 templates/js/translated/build.js:697
#: templates/js/translated/build.js:1073
#: templates/js/translated/model_renderers.js:95
#: templates/js/translated/order.js:99 templates/js/translated/order.js:1945
-#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:415
+#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:423
msgid "Serial Number"
msgstr "序列号"
@@ -5371,19 +5467,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:1948
+#: stock/models.py:1976
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:1954
+#: stock/models.py:1982
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
-#: templates/InvenTree/settings/plugin.html:49
+#: templates/InvenTree/settings/plugin.html:50
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2367
+#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2525
msgid "Date"
msgstr ""
@@ -5396,23 +5492,27 @@ msgid "Fail"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:123
-#: stock/templates/stock/stock_sidebar.html:12
+#: stock/templates/stock/stock_sidebar.html:16
msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:578 templates/js/translated/stock.js:748
-#: templates/js/translated/stock.js:2627
+#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756
+#: templates/js/translated/stock.js:2785
msgid "Serial"
msgstr ""
-#: stock/api.py:478
+#: stock/api.py:476
msgid "Quantity is required"
msgstr ""
-#: stock/forms.py:77 stock/forms.py:251 stock/models.py:574
+#: stock/api.py:483
+msgid "Valid part must be supplied"
+msgstr ""
+
+#: stock/forms.py:77 stock/forms.py:251 stock/models.py:576
#: stock/templates/stock/item_base.html:193
-#: templates/js/translated/stock.js:1701
+#: templates/js/translated/stock.js:1709
msgid "Expiry Date"
msgstr ""
@@ -5460,228 +5560,228 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:60 stock/models.py:611
+#: stock/models.py:62 stock/models.py:613
#: stock/templates/stock/item_base.html:416
msgid "Owner"
msgstr ""
-#: stock/models.py:61 stock/models.py:612
+#: stock/models.py:63 stock/models.py:614
msgid "Select Owner"
msgstr ""
-#: stock/models.py:336
+#: stock/models.py:338
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:372
+#: stock/models.py:374
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr "商品类型 ('{pf}') 必须是 {pe}"
-#: stock/models.py:382 stock/models.py:391
+#: stock/models.py:384 stock/models.py:393
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:383
+#: stock/models.py:385
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:405
+#: stock/models.py:407
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:413
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:418
+#: stock/models.py:420
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:461
+#: stock/models.py:463
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:470
+#: stock/models.py:472
msgid "Base part"
msgstr ""
-#: stock/models.py:478
+#: stock/models.py:480
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:484 stock/templates/stock/location.html:16
+#: stock/models.py:486 stock/templates/stock/location.html:16
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr "仓储地点"
-#: stock/models.py:487
+#: stock/models.py:489
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:494
+#: stock/models.py:496
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:500 stock/templates/stock/item_base.html:298
+#: stock/models.py:502 stock/templates/stock/item_base.html:298
msgid "Installed In"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:505
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:521
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:535
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:537
+#: stock/models.py:539
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:546
+#: stock/models.py:548
msgid "Source Build"
msgstr ""
-#: stock/models.py:548
+#: stock/models.py:550
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:559
+#: stock/models.py:561
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:562
+#: stock/models.py:564
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:568
+#: stock/models.py:570
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:575
+#: stock/models.py:577
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:588
+#: stock/models.py:590
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:588
+#: stock/models.py:590
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:598 stock/templates/stock/item.html:111
+#: stock/models.py:600 stock/templates/stock/item.html:128
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:607
+#: stock/models.py:609
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1068
+#: stock/models.py:1096
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1074
+#: stock/models.py:1102
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1080
+#: stock/models.py:1108
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1083
+#: stock/models.py:1111
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1086
+#: stock/models.py:1114
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1093
+#: stock/models.py:1121
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1164
+#: stock/models.py:1192
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1167
+#: stock/models.py:1195
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1170
+#: stock/models.py:1198
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1173
+#: stock/models.py:1201
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1176
+#: stock/models.py:1204
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1179
+#: stock/models.py:1207
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1186 stock/serializers.py:774
+#: stock/models.py:1214 stock/serializers.py:775
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1190
+#: stock/models.py:1218
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1194
+#: stock/models.py:1222
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1198
+#: stock/models.py:1226
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1369
+#: stock/models.py:1397
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1868
+#: stock/models.py:1896
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1925
+#: stock/models.py:1953
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1931
+#: stock/models.py:1959
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1949
+#: stock/models.py:1977
msgid "Test name"
msgstr ""
-#: stock/models.py:1955 templates/js/translated/table_filters.js:271
+#: stock/models.py:1983 templates/js/translated/table_filters.js:271
msgid "Test result"
msgstr ""
-#: stock/models.py:1961
+#: stock/models.py:1989
msgid "Test output value"
msgstr ""
-#: stock/models.py:1968
+#: stock/models.py:1996
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1974
+#: stock/models.py:2002
msgid "Test notes"
msgstr ""
@@ -5706,7 +5806,7 @@ msgstr ""
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:326 stock/serializers.py:731 stock/serializers.py:972
+#: stock/serializers.py:326 stock/serializers.py:732 stock/serializers.py:973
msgid "Destination stock location"
msgstr ""
@@ -5718,63 +5818,63 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:588
+#: stock/serializers.py:589
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:592
+#: stock/serializers.py:593
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:596
+#: stock/serializers.py:597
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:626
+#: stock/serializers.py:627
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:632
+#: stock/serializers.py:633
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:640
+#: stock/serializers.py:641
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:650 stock/serializers.py:880
+#: stock/serializers.py:651 stock/serializers.py:881
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:738
+#: stock/serializers.py:739
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:743
+#: stock/serializers.py:744
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:744
+#: stock/serializers.py:745
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:749
+#: stock/serializers.py:750
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:750
+#: stock/serializers.py:751
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:760
+#: stock/serializers.py:761
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:842
+#: stock/serializers.py:843
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:870
+#: stock/serializers.py:871
msgid "Stock transaction notes"
msgstr ""
@@ -5787,47 +5887,51 @@ msgid "New Entry"
msgstr ""
#: stock/templates/stock/item.html:48
-msgid "Child Stock Items"
-msgstr ""
-
-#: stock/templates/stock/item.html:55
-msgid "This stock item does not have any child items"
+msgid "Stock Item Allocations"
msgstr ""
#: stock/templates/stock/item.html:64
-#: stock/templates/stock/stock_sidebar.html:8
-msgid "Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:57
-msgid "Test Report"
+msgid "Child Stock Items"
msgstr ""
#: stock/templates/stock/item.html:72
+msgid "This stock item does not have any child items"
+msgstr ""
+
+#: stock/templates/stock/item.html:81
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:85 stock/templates/stock/item_base.html:57
+msgid "Test Report"
+msgstr ""
+
+#: stock/templates/stock/item.html:89
msgid "Delete Test Data"
msgstr ""
-#: stock/templates/stock/item.html:76
+#: stock/templates/stock/item.html:93
msgid "Add Test Data"
msgstr ""
-#: stock/templates/stock/item.html:133
+#: stock/templates/stock/item.html:150
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:137 stock/views.py:482
+#: stock/templates/stock/item.html:154 stock/views.py:482
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304
+#: stock/templates/stock/item.html:309 stock/templates/stock/item.html:334
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:324
+#: stock/templates/stock/item.html:354
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:338
+#: stock/templates/stock/item.html:368
msgid "Delete Test Result"
msgstr ""
@@ -5952,7 +6056,7 @@ msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:206
-#: templates/js/translated/stock.js:1714
+#: templates/js/translated/stock.js:1722
msgid "Last Updated"
msgstr ""
@@ -6111,7 +6215,7 @@ msgid "Sublocations"
msgstr ""
#: stock/templates/stock/location.html:146 templates/InvenTree/search.html:164
-#: templates/stats.html:97 users/models.py:42
+#: templates/stats.html:109 users/models.py:42
msgid "Stock Locations"
msgstr "仓储地点"
@@ -6135,7 +6239,7 @@ msgstr ""
msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/stock_sidebar.html:16
+#: stock/templates/stock/stock_sidebar.html:20
msgid "Child Items"
msgstr ""
@@ -6164,7 +6268,7 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:162
+#: stock/views.py:162 templates/js/translated/stock.js:139
msgid "Edit Stock Location"
msgstr "编辑仓储地点"
@@ -6204,7 +6308,7 @@ msgstr ""
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:727 templates/js/translated/stock.js:1066
+#: stock/views.py:727 templates/js/translated/stock.js:1074
msgid "Confirm stock adjustment"
msgstr ""
@@ -6212,7 +6316,7 @@ msgstr ""
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:324
+#: stock/views.py:760 templates/js/translated/stock.js:332
msgid "Edit Stock Item"
msgstr ""
@@ -6224,7 +6328,7 @@ msgstr "新建仓储地点"
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1153 templates/js/translated/stock.js:304
+#: stock/views.py:1153 templates/js/translated/stock.js:312
msgid "Duplicate Stock Item"
msgstr ""
@@ -6268,6 +6372,18 @@ msgstr ""
msgid "The requested page does not exist"
msgstr ""
+#: templates/500.html:5 templates/500.html:11
+msgid "Internal Server Error"
+msgstr ""
+
+#: templates/500.html:14
+msgid "The InvenTree server raised an internal error"
+msgstr ""
+
+#: templates/500.html:15
+msgid "Refer to the error log in the admin interface for further details"
+msgstr ""
+
#: templates/503.html:10 templates/503.html:35
msgid "Site is in Maintenance"
msgstr ""
@@ -6390,7 +6506,7 @@ msgid "Signup"
msgstr ""
#: templates/InvenTree/settings/mixins/settings.html:5
-#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:118
+#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:113
msgid "Settings"
msgstr "设置"
@@ -6431,43 +6547,43 @@ msgstr ""
msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage."
msgstr ""
-#: templates/InvenTree/settings/plugin.html:32
+#: templates/InvenTree/settings/plugin.html:33
msgid "Plugins"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:37
+#: templates/InvenTree/settings/plugin.html:38
#: templates/js/translated/plugin.js:15
msgid "Install Plugin"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:46 templates/navbar.html:111
+#: templates/InvenTree/settings/plugin.html:47 templates/navbar.html:111
#: users/models.py:39
msgid "Admin"
msgstr "管理员"
-#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin.html:49
#: templates/InvenTree/settings/plugin_settings.html:28
msgid "Author"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:50
+#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin_settings.html:43
msgid "Version"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:91
+#: templates/InvenTree/settings/plugin.html:92
msgid "Inactive plugins"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:114
+#: templates/InvenTree/settings/plugin.html:115
msgid "Plugin Error Stack"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:123
+#: templates/InvenTree/settings/plugin.html:124
msgid "Stage"
msgstr ""
-#: templates/InvenTree/settings/plugin.html:125
+#: templates/InvenTree/settings/plugin.html:126
msgid "Message"
msgstr ""
@@ -6555,37 +6671,37 @@ msgstr "未设置值"
msgid "Edit setting"
msgstr "编辑设置"
-#: templates/InvenTree/settings/settings.html:75
+#: templates/InvenTree/settings/settings.html:78
msgid "Edit Plugin Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:77
+#: templates/InvenTree/settings/settings.html:80
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:79
+#: templates/InvenTree/settings/settings.html:82
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:168
+#: templates/InvenTree/settings/settings.html:171
msgid "No category parameter templates found"
msgstr "未找到类别参数模板"
-#: templates/InvenTree/settings/settings.html:190
-#: templates/InvenTree/settings/settings.html:289
+#: templates/InvenTree/settings/settings.html:193
+#: templates/InvenTree/settings/settings.html:292
msgid "Edit Template"
msgstr "编辑模板"
-#: templates/InvenTree/settings/settings.html:191
-#: templates/InvenTree/settings/settings.html:290
+#: templates/InvenTree/settings/settings.html:194
+#: templates/InvenTree/settings/settings.html:293
msgid "Delete Template"
msgstr "删除模板"
-#: templates/InvenTree/settings/settings.html:269
+#: templates/InvenTree/settings/settings.html:272
msgid "No part parameter templates found"
msgstr "未找到商品参数模板"
-#: templates/InvenTree/settings/settings.html:273
+#: templates/InvenTree/settings/settings.html:276
msgid "ID"
msgstr ""
@@ -6763,124 +6879,105 @@ msgstr ""
msgid "Remove multifactor"
msgstr ""
-#: templates/InvenTree/settings/user.html:219
+#: templates/InvenTree/settings/user.html:220
+msgid "Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:226
+msgid "Log out active sessions (except this one)"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:227
+msgid "Log Out Active Sessions"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:236
+msgid "unknown on unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:237
+msgid "unknown"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:241
+msgid "IP Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:242
+msgid "Device"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:243
+msgid "Last Activity"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:252
+#, python-format
+msgid "%(time)s ago (this session)"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:254
+#, python-format
+msgid "%(time)s ago"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:266
+msgid "Do you really want to remove the selected email address?"
+msgstr ""
+
#: templates/InvenTree/settings/user_display.html:25
msgid "Theme Settings"
msgstr "主题设置"
-#: templates/InvenTree/settings/user.html:227
#: templates/InvenTree/settings/user_display.html:35
msgid "Select theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:237
#: templates/InvenTree/settings/user_display.html:46
msgid "Set Theme"
msgstr "设置主题"
-#: templates/InvenTree/settings/user.html:246
#: templates/InvenTree/settings/user_display.html:54
msgid "Language Settings"
msgstr "语言设置"
-#: templates/InvenTree/settings/user.html:254
#: templates/InvenTree/settings/user_display.html:63
msgid "Select language"
msgstr ""
-#: templates/InvenTree/settings/user.html:270
#: templates/InvenTree/settings/user_display.html:79
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr "%(lang_translated)s%% 已翻译"
-#: templates/InvenTree/settings/user.html:272
#: templates/InvenTree/settings/user_display.html:81
msgid "No translations available"
msgstr "无可用翻译"
-#: templates/InvenTree/settings/user.html:279
#: templates/InvenTree/settings/user_display.html:88
msgid "Set Language"
msgstr "设置语言"
-#: templates/InvenTree/settings/user.html:281
#: templates/InvenTree/settings/user_display.html:91
msgid "Some languages are not complete"
msgstr ""
-#: templates/InvenTree/settings/user.html:283
#: templates/InvenTree/settings/user_display.html:93
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user.html:285
-#: templates/InvenTree/settings/user_display.html:95
-msgid "Show them too"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:292
-#: templates/InvenTree/settings/user_display.html:101
-msgid "Help the translation efforts!"
-msgstr "帮助翻译工作!"
-
-#: templates/InvenTree/settings/user.html:293
-#, python-format
-msgid "Native language translation of the\n"
-" InvenTree web application is community contributed via crowdin. Contributions are\n"
-" welcomed and encouraged."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:302
-msgid "Active Sessions"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:308
-msgid "Log out active sessions (except this one)"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:309
-msgid "Log Out Active Sessions"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:318
-msgid "unknown on unknown"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:319
-msgid "unknown"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:323
-msgid "IP Address"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:324
-msgid "Device"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:325
-msgid "Last Activity"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:334
-#, python-format
-msgid "%(time)s ago (this session)"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:336
-#, python-format
-msgid "%(time)s ago"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:348
-msgid "Do you really want to remove the selected email address?"
-msgstr ""
-
#: templates/InvenTree/settings/user_display.html:95
msgid "and hidden."
msgstr ""
+#: templates/InvenTree/settings/user_display.html:95
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:101
+msgid "Help the translation efforts!"
+msgstr "帮助翻译工作!"
+
#: templates/InvenTree/settings/user_display.html:102
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
@@ -6899,9 +6996,9 @@ msgid "InvenTree Version Information"
msgstr ""
#: templates/about.html:11 templates/about.html:105
-#: templates/js/translated/bom.js:395 templates/js/translated/modals.js:53
-#: templates/js/translated/modals.js:573 templates/js/translated/modals.js:667
-#: templates/js/translated/modals.js:970 templates/modals.html:15
+#: templates/js/translated/bom.js:407 templates/js/translated/modals.js:53
+#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
+#: templates/js/translated/modals.js:983 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -7178,13 +7275,13 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1103
+#: templates/js/translated/bom.js:1117
msgid "Required Quantity"
msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:579 templates/js/translated/build.js:1189
+#: templates/js/translated/bom.js:591 templates/js/translated/build.js:1189
#: templates/js/translated/build.js:1810
#: templates/js/translated/table_filters.js:178
msgid "Available"
@@ -7208,10 +7305,6 @@ msgstr ""
msgid "Click on the following link to view this part"
msgstr ""
-#: templates/email/low_stock_notification.html:17
-msgid "Total Stock"
-msgstr ""
-
#: templates/email/low_stock_notification.html:19
msgid "Minimum Quantity"
msgstr ""
@@ -7232,11 +7325,11 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1040
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1053
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1041
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1054
msgid "No response from the InvenTree server"
msgstr ""
@@ -7248,27 +7341,27 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1063
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1051
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1064
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1068
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1056
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1069
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1073
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1061
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1074
msgid "The requested resource could not be located on the server"
msgstr ""
@@ -7280,11 +7373,11 @@ msgstr ""
msgid "HTTP method not allowed at URL"
msgstr ""
-#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1065
+#: templates/js/translated/api.js:217 templates/js/translated/modals.js:1078
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:218 templates/js/translated/modals.js:1079
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -7353,7 +7446,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:140
-#: templates/js/translated/modals.js:1030
+#: templates/js/translated/modals.js:1043
msgid "Invalid server response"
msgstr ""
@@ -7381,7 +7474,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1018
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026
msgid "Remove stock item"
msgstr ""
@@ -7428,12 +7521,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:39 templates/js/translated/bom.js:73
-#: templates/js/translated/order.js:369 templates/js/translated/stock.js:510
+#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:40 templates/js/translated/bom.js:74
-#: templates/js/translated/order.js:370 templates/js/translated/stock.js:511
+#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519
msgid "Select file format"
msgstr ""
@@ -7489,87 +7582,87 @@ msgstr "在导出 BOM 中包含供应商数据"
msgid "Remove substitute part"
msgstr ""
-#: templates/js/translated/bom.js:340
-msgid "Select and add a new variant item using the input below"
+#: templates/js/translated/bom.js:352
+msgid "Select and add a new substitute part using the input below"
msgstr ""
-#: templates/js/translated/bom.js:351
+#: templates/js/translated/bom.js:363
msgid "Are you sure you wish to remove this substitute part link?"
msgstr ""
-#: templates/js/translated/bom.js:357
+#: templates/js/translated/bom.js:369
msgid "Remove Substitute Part"
msgstr ""
-#: templates/js/translated/bom.js:396
+#: templates/js/translated/bom.js:408
msgid "Add Substitute"
msgstr ""
-#: templates/js/translated/bom.js:397
+#: templates/js/translated/bom.js:409
msgid "Edit BOM Item Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:516
+#: templates/js/translated/bom.js:528
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:520 templates/js/translated/build.js:1171
+#: templates/js/translated/bom.js:532 templates/js/translated/build.js:1171
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:525
+#: templates/js/translated/bom.js:537
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:597
+#: templates/js/translated/bom.js:609
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:612
+#: templates/js/translated/bom.js:624
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:619
+#: templates/js/translated/bom.js:631
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:668 templates/js/translated/bom.js:757
+#: templates/js/translated/bom.js:680 templates/js/translated/bom.js:769
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:728
+#: templates/js/translated/bom.js:740
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:730
+#: templates/js/translated/bom.js:742
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:732
+#: templates/js/translated/bom.js:744
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:734 templates/js/translated/bom.js:908
+#: templates/js/translated/bom.js:746 templates/js/translated/bom.js:920
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:736 templates/js/translated/bom.js:891
+#: templates/js/translated/bom.js:748 templates/js/translated/bom.js:903
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:830 templates/js/translated/build.js:915
+#: templates/js/translated/bom.js:842 templates/js/translated/build.js:915
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:886
+#: templates/js/translated/bom.js:898
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:1086 templates/js/translated/build.js:1155
+#: templates/js/translated/bom.js:1100 templates/js/translated/build.js:1155
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1108
+#: templates/js/translated/bom.js:1122
msgid "Inherited from parent BOM"
msgstr ""
@@ -7725,9 +7818,9 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1206
-#: templates/js/translated/part.js:1617 templates/js/translated/stock.js:1512
-#: templates/js/translated/stock.js:2321
+#: templates/js/translated/build.js:1654 templates/js/translated/part.js:1213
+#: templates/js/translated/part.js:1624 templates/js/translated/stock.js:1520
+#: templates/js/translated/stock.js:2479
msgid "Select"
msgstr ""
@@ -7735,7 +7828,7 @@ msgstr ""
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2540
+#: templates/js/translated/build.js:1735 templates/js/translated/stock.js:2698
msgid "No user information"
msgstr "没有用户信息"
@@ -7808,34 +7901,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:511
-#: templates/js/translated/part.js:596
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:517
+#: templates/js/translated/part.js:602
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:515
-#: templates/js/translated/part.js:600
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:521
+#: templates/js/translated/part.js:606
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:690
+#: templates/js/translated/company.js:631 templates/js/translated/part.js:696
msgid "No parameters found"
msgstr "无指定参数"
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:732
+#: templates/js/translated/company.js:668 templates/js/translated/part.js:738
msgid "Edit parameter"
msgstr "编辑参数"
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:733
+#: templates/js/translated/company.js:669 templates/js/translated/part.js:739
msgid "Delete parameter"
msgstr "删除参数"
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:750
+#: templates/js/translated/company.js:688 templates/js/translated/part.js:756
msgid "Edit Parameter"
msgstr "编辑参数"
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:762
+#: templates/js/translated/company.js:699 templates/js/translated/part.js:768
msgid "Delete Parameter"
msgstr "删除参数"
@@ -7844,12 +7937,12 @@ msgid "No supplier parts found"
msgstr "未找到供应商商品"
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:420
+#: templates/js/translated/filters.js:429
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:421
+#: templates/js/translated/filters.js:430
msgid "false"
msgstr ""
@@ -7869,7 +7962,7 @@ msgstr ""
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:329
+#: templates/js/translated/filters.js:338
msgid "Create filter"
msgstr ""
@@ -7898,20 +7991,20 @@ msgstr ""
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1080 templates/modals.html:19
+#: templates/js/translated/forms.js:1082 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1471
+#: templates/js/translated/forms.js:1487
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1675
+#: templates/js/translated/forms.js:1691
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1895
+#: templates/js/translated/forms.js:1930
msgid "Clear input"
msgstr ""
@@ -7924,7 +8017,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1042
+#: templates/js/translated/stock.js:1050
msgid "Select Stock Items"
msgstr "选择库存项"
@@ -7974,12 +8067,12 @@ msgid "Select Label Template"
msgstr "选择标签模板"
#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
-#: templates/js/translated/modals.js:599
+#: templates/js/translated/modals.js:610
msgid "Cancel"
msgstr "取消"
#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:666 templates/js/translated/modals.js:969
+#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:982
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
@@ -7988,47 +8081,47 @@ msgstr ""
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:381
+#: templates/js/translated/modals.js:392
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:540
+#: templates/js/translated/modals.js:551
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:598
+#: templates/js/translated/modals.js:609
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:655
+#: templates/js/translated/modals.js:666
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:921
+#: templates/js/translated/modals.js:934
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:921
+#: templates/js/translated/modals.js:934
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:946
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1030
+#: templates/js/translated/modals.js:1043
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1045
+#: templates/js/translated/modals.js:1058
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1046
+#: templates/js/translated/modals.js:1059
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1069
+#: templates/js/translated/modals.js:1082
msgid "Error requesting form data"
msgstr ""
@@ -8052,23 +8145,24 @@ msgstr ""
msgid "Part ID"
msgstr "商品ID"
-#: templates/js/translated/model_renderers.js:236
+#: templates/js/translated/model_renderers.js:249
+#: templates/js/translated/model_renderers.js:270
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:253
+#: templates/js/translated/model_renderers.js:287
msgid "Shipment ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:273
+#: templates/js/translated/model_renderers.js:307
msgid "Category ID"
msgstr "类别 ID"
-#: templates/js/translated/model_renderers.js:310
+#: templates/js/translated/model_renderers.js:344
msgid "Manufacturer Part ID"
msgstr "制造商商品ID"
-#: templates/js/translated/model_renderers.js:339
+#: templates/js/translated/model_renderers.js:373
msgid "Supplier Part ID"
msgstr "供应商商品ID"
@@ -8116,7 +8210,7 @@ msgstr ""
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2123
+#: templates/js/translated/order.js:520 templates/js/translated/stock.js:2131
msgid "Stock Status"
msgstr ""
@@ -8140,7 +8234,7 @@ msgstr ""
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:790 templates/js/translated/part.js:803
+#: templates/js/translated/order.js:790 templates/js/translated/part.js:809
msgid "No purchase orders found"
msgstr ""
@@ -8165,7 +8259,7 @@ msgid "Total"
msgstr ""
#: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163
-#: templates/js/translated/part.js:1834 templates/js/translated/part.js:2045
+#: templates/js/translated/part.js:1841 templates/js/translated/part.js:2052
msgid "Unit Price"
msgstr "单价"
@@ -8181,7 +8275,7 @@ msgstr ""
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1166 templates/js/translated/part.js:935
+#: templates/js/translated/order.js:1166 templates/js/translated/part.js:942
msgid "Receive line item"
msgstr ""
@@ -8250,7 +8344,7 @@ msgid "Delete Stock Allocation"
msgstr ""
#: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048
-#: templates/js/translated/stock.js:1428
+#: templates/js/translated/stock.js:1436
msgid "Shipped to customer"
msgstr ""
@@ -8378,144 +8472,148 @@ msgstr "编辑商品"
msgid "Part edited"
msgstr ""
-#: templates/js/translated/part.js:412
+#: templates/js/translated/part.js:351
+msgid "Create Part Variant"
+msgstr ""
+
+#: templates/js/translated/part.js:418
msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:414
+#: templates/js/translated/part.js:420
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:419
+#: templates/js/translated/part.js:425
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:421
+#: templates/js/translated/part.js:427
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:438
+#: templates/js/translated/part.js:444
msgid "Validating the BOM will mark each line item as valid"
msgstr ""
-#: templates/js/translated/part.js:448
+#: templates/js/translated/part.js:454
msgid "Validate Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:451
+#: templates/js/translated/part.js:457
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:475
+#: templates/js/translated/part.js:481
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:503 templates/js/translated/part.js:588
+#: templates/js/translated/part.js:509 templates/js/translated/part.js:594
msgid "Trackable part"
msgstr "可追溯商品"
-#: templates/js/translated/part.js:507 templates/js/translated/part.js:592
+#: templates/js/translated/part.js:513 templates/js/translated/part.js:598
msgid "Virtual part"
msgstr "虚拟商品"
-#: templates/js/translated/part.js:519
+#: templates/js/translated/part.js:525
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:523
+#: templates/js/translated/part.js:529
msgid "Salable part"
msgstr "可销售商品"
-#: templates/js/translated/part.js:638
+#: templates/js/translated/part.js:644
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1005
+#: templates/js/translated/part.js:1012
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1029
+#: templates/js/translated/part.js:1036
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1096 templates/js/translated/part.js:1356
+#: templates/js/translated/part.js:1103 templates/js/translated/part.js:1363
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1266
+#: templates/js/translated/part.js:1273
msgid "No category"
msgstr "没有分类"
-#: templates/js/translated/part.js:1289
+#: templates/js/translated/part.js:1296
#: templates/js/translated/table_filters.js:430
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1380 templates/js/translated/part.js:1552
-#: templates/js/translated/stock.js:2282
+#: templates/js/translated/part.js:1387 templates/js/translated/part.js:1559
+#: templates/js/translated/stock.js:2440
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1396
+#: templates/js/translated/part.js:1403
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1571 templates/js/translated/stock.js:2301
+#: templates/js/translated/part.js:1578 templates/js/translated/stock.js:2459
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1635
+#: templates/js/translated/part.js:1642
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1649 templates/js/translated/stock.js:2345
+#: templates/js/translated/part.js:1656 templates/js/translated/stock.js:2503
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1693
+#: templates/js/translated/part.js:1700
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1744 templates/js/translated/stock.js:1234
+#: templates/js/translated/part.js:1751 templates/js/translated/stock.js:1242
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1745 templates/js/translated/stock.js:1235
+#: templates/js/translated/part.js:1752 templates/js/translated/stock.js:1243
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1751
+#: templates/js/translated/part.js:1758
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1773
+#: templates/js/translated/part.js:1780
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1787
+#: templates/js/translated/part.js:1794
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1812
+#: templates/js/translated/part.js:1819
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1867
+#: templates/js/translated/part.js:1874
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1868
+#: templates/js/translated/part.js:1875
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1969
+#: templates/js/translated/part.js:1976
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1988
+#: templates/js/translated/part.js:1995
msgid "Single Price Difference"
msgstr ""
@@ -8589,340 +8687,344 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:73
+#: templates/js/translated/stock.js:74
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:173
+#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:181
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/stock.js:93 templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:94 templates/js/translated/stock.js:183
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/stock.js:101
+#: templates/js/translated/stock.js:102
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:110
+#: templates/js/translated/stock.js:111
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:146
+#: templates/js/translated/stock.js:154
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:186
+#: templates/js/translated/stock.js:194
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:225
+#: templates/js/translated/stock.js:233
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:231
+#: templates/js/translated/stock.js:239
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:374
+#: templates/js/translated/stock.js:382
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:387
+#: templates/js/translated/stock.js:395
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:412
+#: templates/js/translated/stock.js:420
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:416 templates/js/translated/stock.js:417
+#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:433
+#: templates/js/translated/stock.js:441
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:453
+#: templates/js/translated/stock.js:461
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:462
+#: templates/js/translated/stock.js:470
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:507
+#: templates/js/translated/stock.js:515
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:518
+#: templates/js/translated/stock.js:526
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:519
+#: templates/js/translated/stock.js:527
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:628
+#: templates/js/translated/stock.js:636
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:629
+#: templates/js/translated/stock.js:637
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:706
+#: templates/js/translated/stock.js:714
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:707
+#: templates/js/translated/stock.js:715
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:709
+#: templates/js/translated/stock.js:717
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:710
+#: templates/js/translated/stock.js:718
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:796
+#: templates/js/translated/stock.js:804
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:797
+#: templates/js/translated/stock.js:805
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:892
+#: templates/js/translated/stock.js:900
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:893
+#: templates/js/translated/stock.js:901
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:899
+#: templates/js/translated/stock.js:907
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:900
+#: templates/js/translated/stock.js:908
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:904
+#: templates/js/translated/stock.js:912
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:905
+#: templates/js/translated/stock.js:913
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:909
+#: templates/js/translated/stock.js:917
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:910 users/models.py:206
+#: templates/js/translated/stock.js:918 users/models.py:208
msgid "Add"
msgstr "添加"
-#: templates/js/translated/stock.js:914 templates/stock_table.html:58
+#: templates/js/translated/stock.js:922 templates/stock_table.html:58
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1003
+#: templates/js/translated/stock.js:1011
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1003
+#: templates/js/translated/stock.js:1011
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1043
+#: templates/js/translated/stock.js:1051
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1201
+#: templates/js/translated/stock.js:1209
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1211
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1208
+#: templates/js/translated/stock.js:1216
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1230
+#: templates/js/translated/stock.js:1238
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1256
+#: templates/js/translated/stock.js:1264
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1313
+#: templates/js/translated/stock.js:1321
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1420
+#: templates/js/translated/stock.js:1428
msgid "In production"
msgstr "正在生产"
-#: templates/js/translated/stock.js:1424
+#: templates/js/translated/stock.js:1432
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1432
+#: templates/js/translated/stock.js:1440
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1438
+#: templates/js/translated/stock.js:1446
msgid "No stock location set"
msgstr "未设置仓储地点"
-#: templates/js/translated/stock.js:1596
+#: templates/js/translated/stock.js:1604
msgid "Stock item is in production"
msgstr "库存品正在生产"
-#: templates/js/translated/stock.js:1601
+#: templates/js/translated/stock.js:1609
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1604
+#: templates/js/translated/stock.js:1612
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/stock.js:1616
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1610
+#: templates/js/translated/stock.js:1618
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1616
+#: templates/js/translated/stock.js:1624
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1626
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1620
+#: templates/js/translated/stock.js:1628
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1625
+#: templates/js/translated/stock.js:1633
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1632
+#: templates/js/translated/stock.js:1640
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1634
+#: templates/js/translated/stock.js:1642
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1644
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1640
+#: templates/js/translated/stock.js:1648
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1698
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1763
+#: templates/js/translated/stock.js:1771
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1801
+#: templates/js/translated/stock.js:1809
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1822 templates/js/translated/stock.js:1870
+#: templates/js/translated/stock.js:1830 templates/js/translated/stock.js:1878
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1910
+#: templates/js/translated/stock.js:1918
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1937
+#: templates/js/translated/stock.js:1945
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1939
+#: templates/js/translated/stock.js:1947
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:2138
+#: templates/js/translated/stock.js:2146
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2152
+#: templates/js/translated/stock.js:2160
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2153
+#: templates/js/translated/stock.js:2161
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2377
+#: templates/js/translated/stock.js:2340
+msgid "Allocated Quantity"
+msgstr ""
+
+#: templates/js/translated/stock.js:2535
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:2399
+#: templates/js/translated/stock.js:2557
msgid "Details"
msgstr "详情"
-#: templates/js/translated/stock.js:2424
+#: templates/js/translated/stock.js:2582
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2443
+#: templates/js/translated/stock.js:2601
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2462
+#: templates/js/translated/stock.js:2620
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2480
+#: templates/js/translated/stock.js:2638
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2503
+#: templates/js/translated/stock.js:2661
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2511
+#: templates/js/translated/stock.js:2669
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2552
+#: templates/js/translated/stock.js:2710
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2553
+#: templates/js/translated/stock.js:2711
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2604
+#: templates/js/translated/stock.js:2762
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2655
+#: templates/js/translated/stock.js:2813
msgid "Uninstall Stock Item"
msgstr ""
@@ -9194,11 +9296,11 @@ msgstr "采购"
msgid "Sell"
msgstr "销售"
-#: templates/navbar.html:113
+#: templates/navbar.html:114
msgid "Logout"
msgstr ""
-#: templates/navbar.html:115
+#: templates/navbar.html:116
msgid "Login"
msgstr ""
@@ -9246,31 +9348,43 @@ msgstr ""
msgid "Server is deployed using docker"
msgstr ""
-#: templates/stats.html:40
-msgid "Server status"
+#: templates/stats.html:39
+msgid "Plugin Support"
msgstr ""
#: templates/stats.html:43
-msgid "Healthy"
+msgid "Plugin support enabled"
msgstr ""
#: templates/stats.html:45
-msgid "Issues detected"
+msgid "Plugin support disabled"
msgstr ""
#: templates/stats.html:52
-msgid "Background Worker"
+msgid "Server status"
msgstr ""
#: templates/stats.html:55
+msgid "Healthy"
+msgstr ""
+
+#: templates/stats.html:57
+msgid "Issues detected"
+msgstr ""
+
+#: templates/stats.html:64
+msgid "Background Worker"
+msgstr ""
+
+#: templates/stats.html:67
msgid "Background worker not running"
msgstr ""
-#: templates/stats.html:63
+#: templates/stats.html:75
msgid "Email Settings"
msgstr "电子邮件设置"
-#: templates/stats.html:66
+#: templates/stats.html:78
msgid "Email settings not configured"
msgstr "电子邮件设置未配置"
@@ -9366,35 +9480,35 @@ msgstr "权限"
msgid "Important dates"
msgstr "重要日期"
-#: users/models.py:193
+#: users/models.py:195
msgid "Permission set"
msgstr "权限设置"
-#: users/models.py:201
+#: users/models.py:203
msgid "Group"
msgstr "群组"
-#: users/models.py:204
+#: users/models.py:206
msgid "View"
msgstr "视图"
-#: users/models.py:204
+#: users/models.py:206
msgid "Permission to view items"
msgstr "查看项目权限"
-#: users/models.py:206
+#: users/models.py:208
msgid "Permission to add items"
msgstr "添加项目权限"
-#: users/models.py:208
+#: users/models.py:210
msgid "Change"
msgstr "更改"
-#: users/models.py:208
+#: users/models.py:210
msgid "Permissions to edit items"
msgstr "编辑项目权限"
-#: users/models.py:210
+#: users/models.py:212
msgid "Permission to delete items"
msgstr "删除项目权限"